8

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.

DavidJ
  • 4,369
  • 4
  • 26
  • 42

3 Answers3

15

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

Joerg Baach
  • 1,066
  • 8
  • 17
  • 1
    This work, but it is very slow. Is there a way to make the cypher creation much faster? – Ricardo Marimon Mar 09 '14 at 21:31
  • It's in one transaction? Why size of my db is not increasing? – Evgenii Apr 05 '14 at 07:38
  • QueryExecutionKernelException: Invalid input 'c': expected whitespace, comment, ';' or end of input (line 2, column 1 (offset: 60)) "create constraint on (n:`target`) assert n.`type` is unique" ^ – FelikZ Apr 23 '15 at 12:27
5

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
Jatin
  • 31,116
  • 15
  • 98
  • 163
0

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/.

johnlinp
  • 853
  • 6
  • 22