it-swarm.com.de

Wie lösche / erstelle ich Datenbanken in Neo4j?

Ist es möglich, verschiedene Datenbanken in der Grafikdatenbank zu erstellen/zu löschen Neo4j wie in MySQL? Oder zumindest, wie man alle Knoten und Beziehungen eines vorhandenen Graphen löscht, um ein sauberes Setup für Tests zu erhalten, z. B. mit Shell-Befehlen ähnlich wie rmrel oder rm?

101
rmv

Sie können einfach das gesamte Graph-Verzeichnis mit rm -rf Entfernen, da Neo4j nichts anderes speichert:

rm -rf data/*

Sie können natürlich auch alle Knoten durchlaufen und ihre Beziehungen und die Knoten selbst löschen, aber das ist möglicherweise zu kostspielig, nur um es zu testen ...

95
Peter Neubauer

noch einfacher Befehl zum Löschen aller Knoten und Beziehungen:

MATCH (n)
OPTIONAL MATCH (n)-[r]-()
DELETE n,r
96
John Bachir

Ab Neo4j 2.3

Wir können löschen alle Knoten mit Beziehungen ,

MATCH (n)
DETACH DELETE n

Derzeit gibt es in Noe4j keine Möglichkeit, mehrere Datenbanken zu erstellen. Sie müssen Neo4j-Daten mehrfach speichern. Siehe Hinweis .

47
Somnath Muluk

Neue Datenbank in Neo4j erstellen

Bevor Sie neo4j community starten, klicken Sie auf die Durchsuchen-Option

enter image description here

und wählen Sie ein anderes Verzeichnis

enter image description here

enter image description here

und klicken Sie auf Start.

enter image description here

Neue Datenbank in diesem Verzeichnis erstellt

47
Bharathiraja

schnelle und schmutzige Weise, die gut funktioniert:

bin/neo4j stop
rm -rf data/
mkdir data
bin/neo4j start
12
Scott

Für alle anderen, die ein sauberes Diagramm benötigen, um eine Testsuite auszuführen, ist https://github.com/jexp/neo4j-clean-remote-db-addon eine großartige Erweiterung, um das Löschen der Datenbank zu ermöglichen Ein REST Aufruf. Natürlich nicht in der Produktion verwenden!

11
Matt Luongo

Führen Sie Ihren Testcode auf einer anderen neo4j-Instanz aus.

  1. Kopieren Sie Ihr neo4j-Verzeichnis an einen neuen Ort. Verwenden Sie dies zum Testen. CD in das neue Verzeichnis.
  2. Ändern Sie den Port, damit Sie Ihre Tests ausführen und ihn normalerweise gleichzeitig verwenden können. Um den Port zu ändern, öffne conf/neo4j-server.properties und set org.neo4j.server.webserver.port zu einem unbenutzten.
  3. Starten Sie den Testserver beim Setup. Machen ./neo4j stop und rm -rf data/graph.db beim Abriss.

Weitere Informationen finden Sie unter neo4j: So wechseln Sie zwischen Datenbanken und docs .

7
Pramod

In Neo4j 2.0.0 ist das? wird nicht mehr unterstützt. Verwenden Sie stattdessen OPTIONAL MATCH:

START n=node(*)
OPTIONAL MATCH (n)-[r]-()
delete n,r;
6
charles

Die einfachste Antwort lautet: [~ # ~] nein [~ # ~]

Der beste Weg, um "neu zu beginnen" ist zu

  • in einen anderen leeren Datenordner verschieben

oder

  • schließen Sie Neo4j vollständig
  • leeren Sie den alten Datenordner
  • starten Sie Neo4j neu und legen Sie den leeren Ordner als Datenordner fest

Es gibt eine Möglichkeit, alle Knoten und Beziehungen zu löschen (wie beschrieben hier )

MATCH (n)
OPTIONAL MATCH (n)-[r]-()
DELETE n,r
6
user3194532

In 2.0.0-M6 können Sie das folgende Cypher-Skript ausführen, um alle Knoten und Beziehungen zu löschen:

start n=node(*)
match (n)-[r?]-()
delete n,r
1
Martin Seeler

Ab Version 3 ist es meines Erachtens jetzt möglich, separate Datenbankinstanzen zu erstellen, sodass sich deren Speicherort geringfügig unterscheidet.

Unter Bezugnahme auf: https://neo4j.com/developer/guide-import-csv/

Die --into retail.db ist offensichtlich die Zieldatenbank, die keine vorhandene Datenbank enthalten darf.

Auf meiner Ubuntu-Box befindet sich der Ort in:

/var/lib/neo4j/data/databases, Wobei ich derzeit nur graph.db Sehe, von dem ich glaube, dass es die Standardeinstellung sein muss.

1
Antony

Sie können Ihre Datendateien löschen, und wenn Sie diesen Weg durchgehen möchten, würde ich empfehlen, zum Beispiel nur Ihre graph.db zu löschen. Andernfalls werden Sie Ihre Authentifizierungsinformationen verfälschen.

0
raeffray