Deploy Neo4j server in read-only mode - neo4j

Is it possible to deploy the Neo4j server (version 2.3.2) in read-only mode so that e.g. when using the data browser or Cypher console the database remains unchanged (thus having CREATE/UPDATE statements somewhat deactivated) ?

Just set read_only=true in conf/neo4j.properties.

Related

How to run Neo4j 3.0.6 multiple instances in a single machine using INEO

How to run Neo4j 3.0.6 multiple instances in a single machine using ineo?
How To change port number of Neo4j 3.0.6 version and instance using ineo?
ineo is a third party solution, and based on its github repo it is not maintained recently. Btw, have you checked the Create an instance with a specific port section of its README.md?
ineo create -p8486 my_db_test
Currently neo4j offers a similar solution for this instance handling, it is called Neo4j Desktop, and it can be downloaded from here: https://neo4j.com/download/other-releases/
If you use the native neo4j database, then you should change the following properties in neo4j.conf to be able to have more instance locally:
dbms.connector.bolt.listen_address
dbms.connector.http.listen_address
dbms.connector.https.listen_address

How to make documents added to an embedded Solr Server with SolrJ visible to a http Solr query

We have a GRAILS / SOLR application that uses a SOLRJ EmbeddedSolrServer to add / retrieve data. The application is also set up to be accessible by http.
When I index documents by http I can reload the SOLR core and the changes are now visible to the Embedded Server.
However when I add documents by using the EmbeddedSolrServer the records are not visible using http unless I restart SOLR itself.
The records are visible to queries using the Embedded Server at this point.
I've tried running reload core commands via curl and the SOLR admin interface but the docs remain hidden until I restart.
Has anyone any idea how I can make these records visible via http without restarting SOLR?
Thanks for your help.
SOLR is 2.1.0
Grails is 2.4.2
We're running on OS X 10.10.5
There's no difference between getting results via http or directly from the embedded server.
When you restart solr, you trigger a hard commit so the cache is flushed and the reader picks up the updated index. So I believe you have 2 options:
Change the solrconfig.xml to trigger a hard commit after a given period of time or after a given number of documents;
Trigger the hard commit using SolrJ.
You can find more info about differences between hard and soft commit here.
Please check this answer for a concrete example including SolrJ and config.

browsing distinct Neo4j databases in the same machine

I am experimenting with several Neo4j databases in my machine. The databases have been generated and populated from Java programs.
Now I would like to inspect them.
It seems that the recommended way is to open the web console so it points to a specific database by means of configuring the property:
org.neo4j.server.database.location=<database location path>
in the neo4j configuration file: conf/neo4j-server.properties
This if fine if I am only interested in one database. But it does not look like a good idea if I am switching often between databases or if I want to explore more than one at the same time.
Is it possible to configure distinct web consoles (maybe using distinct ports) so they refer to my distinct databases?
And is it possible to do this without installing several instances (binaries) of Neo4j in my machine and having to modify lots of configuration files?
Yes! If you edit that same conf/neo4j-server.properties file you can change the org.neo4j.server.webserver.port and org.neo4j.server.webserver.https.port values (I normally set the https port to one less than the http port).
Once you've done that you run ./bin/neo4j start (make sure you shut down your Java app which is accessing the database first) to start the server on that port and then simply visit http://localhost:<port>
I'm not 100% sure if generating the database from Java will generate everything that you need for running a server. If not you can download Neo4j from http://neo4j.com/download/, make multiple copies of it, and replace the graph.db folder with yours one (make sure you shut down any processes which are accessing those databases before copying the directory). Also if you've downloaded a newer version you might need to set allow_store_upgrade=true (see: http://neo4j.com/docs/stable/deployment-upgrading.html)
You can have multiple Embedded Neo4j databases without installing separate binaries. You just need to be configure the different database path for each instance of the database.

Neo4J web console has stats for my embedded data, but cannot query it

I'm currently evaluating Neo4J (2.0M3), and in an attempt to get some kind of visualisation and query-exploration (I haven't succeeded yet!), I switched from using the Test DB to an Embedded DB, and have a Server that I can start up when required.
I understand how to get my node and relationship data written to the data directory of my choice (via How to explore databases created by an embedded-Neo4j Java application and stored outside the /data directory?), and how to configure the Server/web console to point to that directory. Sure enough, the Dashboard does show the data counts I expect, but no Cypher query I try - not even the ones that work fine in my unit tests - return any nodes. Simple lookups by name and Id all fail.
Can anyone explain the inconsistency? This happens with a vanilla Server install, with data written to the default graph.db directory, as well as with different directories. The paths under 'Server Info' are all what I expetc to see.
Another thing I don't understand: why can I not have my own Server running, and create a GraphDatabaseFactory/GraphDatabaseService in code that will accept a server URI, which will allow me to use the standard Java API and see live updates in the web console without having to stop/start the server each time?
You can set up your embedded java project to even start a server, see http://www.cakesolutions.net/teamblogs/2012/05/23/enabling-neo4j-web-admin-tool-on-the-embedded-server-using-spring-data/

Migrating .NET Database to Shared Hosting

Built an app locally with an EF code-first database - not sure how to upload it to a shared hosting environment such as GoDaddy. It makes sense that something would be amiss because on the shared hosting your code can't just go create a database, but on the flip side I can't find anything to copy the CREATE sql and create it on the server like you would with MySQL
Feel a little silly because I've been using .NET for over a year now but at work the databases are already set up and we have full control over our environments.
If the database has no data that you need to preserve the easiest method is just to install the app on the new host and set the connection string to your new database on the host. On the first attempt to load a page accessing the database, the database will automatically be created (note that you need to load a page which hits the database - sometimes the home page is not sufficient).
This method is a lot more straightforward than generating SQL and then executing it on the production database.
If there is data that you need to preserve then the best method will be taking a backup and installing the backup on the host. In SSMS simply right-click the database in the left pane, then Tools > Backup... To restore on the server connect to the server in SSMS and right-click the 'Database' node in the left panel and select 'Restore Database...' I'm not sure if the host provides a direct connection from SSMS but they should at a minimum have a mechanism to restore a .bak file.
Going forward you should ensure that you can execute SQL on your database as a very convenient method for deploying EF Migrations is to generate the SQL update script on the development server and then deploy this by executing it in production.
Depending on your web host, you may be able to restore the database. If this is an option, simply back up your database on your local machine and restore it on the server via the management console.
You can back up your local database using SQL Server Management Console. This works well even for larger databases as you can directly restore all your data, your schema, etc.
I've had experience with three different hosts so far and all of them have this as an option. You'll usually find this under the Database tab for the web site. The rest from there is up to you because it's usually different across the various hosts.

Resources