Wir können alle Knoten und Beziehungen löschen, indem wir der Abfrage folgen.
MATCH (n) OPTIONAL MATCH (n)-[r]-() DELETE n,r
Der neu erstellte Knoten erhält jedoch die interne ID als ({letzte interne ID des Knotens} + 1). Es wird nicht auf Null zurückgesetzt.
Wie können wir die neo4j-Datenbank zurücksetzen, wenn der neu erstellte Knoten die ID 0 erhält?
Ab 2.3 können wir alle Knoten mit Beziehungen löschen.
MATCH (n)
DETACH DELETE n
MATCH (n) DETACH DELETE n
alternativ verwenden.MATCH (n) DETACH DELETE n
kläglich scheitert, wenn es viele Knoten gibt:There is not enough memory to perform the current task. Please try increasing 'dbms.memory.heap.max_size' in the neo4j configuration (normally in 'conf/neo4j.conf' or, if you you are using Neo4j Desktop, found through the user interface) or if you are running an embedded installation increase the heap by using '-Xmx' command line flag, and then restart the database
Antworten:
Fahren Sie Ihren Neo4j-Server herunter, führen Sie a aus
rm -rf data/graph.db
und starten Sie den Server erneut. Bei diesem Verfahren werden Ihre Daten vollständig gelöscht. Gehen Sie daher vorsichtig vor.quelle
rm -rf data/databases/graph.db
(im Fall der Standarddatenbank mit dem Namengraph.db
)./var/lib/neo4j/data/databases/graph.db
für neo4j 3.5Führen Sie beide Befehle aus.
Der obige Befehl löscht alle Knoten mit Beziehungen. dann renne ,
und es werden Knoten gelöscht, die keine Beziehungen haben.
quelle
Umgang mit mehreren Datenbanken.
Laut Neo4j verwalten mehrere Datenbanken Dokumentation :
Wenn neo4j gestartet wird, können Sie auf zwei Datenbanken zugreifen, eine
system
Datenbank und eine default (neo4j
) -Datenbank. So löschen / setzen Sie dieneo4j
Datenbank zurück:1 - Zur
system
Datenbank wechseln:2 - Alle mit der Instanz erstellten Datenbanken anzeigen:
3 - Führen Sie den Befehl aus, um die Datenbank zu löschen.
quelle
Dieser Befehl löscht alles, erfordert jedoch die Installation von apoc:
CALL apoc.periodic.iterate ('MATCH (n) RETURN n', 'DETACH DELETE n', {batchSize: 1000})
quelle
Wenn Sie es in einem Docker-Container verwenden, können Sie dies tun
docker-compose rm -f -s -v myNeo4jService
quelle
Da neo4j nur die aktuelle Datenbank ausführt, die in der conf-Datei angegeben ist, können Sie eine neue und saubere Datenbank auf einfache Weise starten, indem Sie die aktuelle Datenbank in der Datei neo4j.conf ändern und dann den neo4j-Server neu starten.
Einige könnten argumentieren, dass der Datenbankname geändert wird. Zum jetzigen Zeitpunkt [2018-12] unterstützt neo4j jedoch nicht mehrere Datenbankinstanzen. Wir müssen nicht zwischen Datenbanken unterscheiden, daher wird der Name der Datenbank in unserem Code nicht verwendet.
quelle
Nach meiner Erfahrung gibt es zwei Möglichkeiten, eine Neo4j-Datenbank zurückzusetzen, je nachdem, was Sie benötigen.
Methode 1: Löschen Sie einfach alle Knoten / Beziehungen / Indizes / Einschränkungen
Im Neo4j Browser oder in Py2neo mit
graph.run()
( Link ).Obwohl dieser Ansatz praktisch ist, ist er nicht geeignet, wenn ein Befehl
neo4j-admin.bat import
für den BULK-Import verwendet wird, dh ideal, um Millionen von Knoten gleichzeitig schnell zu importieren .Methode 2: Datenbank für BULK Import Tool zurücksetzen
Es ist nicht möglich, BULK zu importieren, wenn die Datenbank nicht leer ist . Ich habe die obige Methode ausprobiert, aber trotzdem den Fehler erhalten:
Um dieses Problem zu beheben, habe ich die folgenden Ordner gelöscht:
und
Führen Sie dann den Importbefehl aus:
Starten Sie die Neo4j-Datenbank. In Neo4j Desktop sollten die Beschriftungen und Beziehungen jetzt erkannt werden.
Beachten Sie, dass die von mir gelöschte Datenbank ( neo4j ) und die Datenbank, in die ich importiert habe, identisch sind.
quelle