DavidJ
DavidJ

Reputation: 4567

Is there a tool to dump a Neo4j graph as Cypher and re-load it from Cypher?

Everyone familiar with MySQL has likely used the mysqldump command which can generate a file of SQL statements representing both the schema and data in a MySQL database. These SQL text files are commonly used for many purposes: backups, seeding replicas, copying databases between installations (- copy prod DBs to staging environments etc) and others.

Is there a similar tool for Neo4j that can dump an entire graph into a text file of Cypher statements, that when executed on an empty database would reconstruct the original data?

Thanks.

Upvotes: 9

Views: 3170

Answers (3)

johnlinp
johnlinp

Reputation: 933

You can use the procedure apoc.export.cypher.all() to dump all the data in your database.

For example, you can dump the database into a single file called dump-file.cypher:

neo4j@neo4j> CALL apoc.export.cypher.all('dump-file.cypher');

For details of the procedure, please see the documentation: https://neo4j.com/labs/apoc/4.4/overview/apoc.export/apoc.export.cypher.all/.

Upvotes: 1

Joerg Baach
Joerg Baach

Reputation: 1086

In neo4j version 2 (e.g. 2.0.0M3), using neo4j-shell, you can use the command

dump

which will create the cypher statements (pretty much like mysqldump would do. To read in the file you can use

cat dump.cql | neo4j-shell

Upvotes: 16

Jatin
Jatin

Reputation: 31724

Cypher is just a query language for Neo4J just as SQL is for MySQL or other relational databases. If you wish to transfer the db, then you just need to copy the folder containing the database files. Simple.

For example my folder simple-graph contains all the db files. Just copy the folder and store it at some other location. You can directly start using it as:

GraphDatabaseServiceraphDb = new EmbeddedGraphDatabase(DB_PATH);//DB_PATH is path to the new location

Upvotes: 5

Related Questions