2013-07-26 10 views
8

Jeder, der mit MySQL vertraut ist, hat wahrscheinlich den Befehl mysqldump verwendet, der eine Datei mit SQL-Anweisungen generieren kann, die sowohl das Schema als auch die Daten in einer MySQL-Datenbank darstellen. Diese SQL-Textdateien werden häufig für viele Zwecke verwendet: Backups, Seeding-Replikate, Kopieren von Datenbanken zwischen Installationen (- Kopieren von Prod-DBs in Staging-Umgebungen usw.) und andere.Gibt es ein Tool, um ein Neo4j-Diagramm als Cypher auszugeben und es von Cypher erneut zu laden?

Gibt es ein ähnliches Werkzeug für Neo4j, das einen kompletten Graphen in eine Textdatei von Cypher-Anweisungen schreiben kann, die, wenn sie auf einer leeren Datenbank ausgeführt werden, die ursprünglichen Daten rekonstruieren würden?

Danke.

Antwort

15

In Neo4j Version 2 (zB 2.0.0M3), Neo4j-Shell verwenden, können Sie den Befehl

dump

, die den CYPHER schaffen Aussagen (so ziemlich wie mysqldump tun würde. in der Datei lesen Sie

cat dump.cql | neo4j-shell

+1

diese Arbeit verwenden können, aber es ist sehr langsam. ist Gibt es eine Möglichkeit, die Erstellung von Chiffren viel schneller zu machen? – rmarimon

+0

Es ist in einer Transaktion? Warum nimmt die Größe meiner Datenbank nicht zu? – Evgenii

+0

QueryExecutionKernelException: Ungültige Eingabe 'c': erwartete Leerzeichen, Kommentar, ';' oder Ende der Eingabe (Zeile 2, Spalte 1 (Offset: 60)) "create constraint für (n:' target') assert n.type' ist eindeutig " ^ – FelikZ

5

Cypher ist nur eine Abfragesprache für Neo4J, genauso wie SQL für MySQL oder andere relationale Datenbanken ist. Wenn Sie die db übertragen möchten, müssen Sie nur den Ordner mit den Datenbankdateien kopieren. Einfach.

Zum Beispiel enthält mein Ordner simple-graph alle db-Dateien. Kopieren Sie einfach den Ordner und speichern Sie ihn an einem anderen Ort. Sie können sich direkt mit ihm als Start:

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