Wie man die eingebettete neo4j Datenbank mit Java löscht?

8

Die Klasse GraphDatabaseService scheint keine Methode zum Löschen / Löschen der Datenbank bereitzustellen. Gibt es da noch irgendwelche anderen Mittel, um die aktuelle eingebettete Datenbank mit Java zu löschen / löschen?

    
zbdiablo 17.03.2011, 07:10
quelle

4 Antworten

6

Führen Sie einfach einen GraphDatabaseService.shutdown () aus Nach der Rückgabe entfernen Sie die Datenbankdateien (mit dem Code dies ).

Sie können auch getAllNodes () verwenden, um zu iterieren Löschen Sie über alle Knoten ihre Beziehungen und die Knoten selbst. Vielleicht vermeiden Sie den Referenzknoten zu löschen.

Wenn Ihr Anwendungsfall testet, können Sie das ImpermanentGraphDatabase , wodurch die Datenbank nach dem Herunterfahren gelöscht wird.

Um ImpermanentGraphDatabase zu verwenden, fügen Sie die neo4j-Kernel Tests jar / dependency zu Ihrem Projekt hinzu. Suchen Sie nach der Datei mit dem Namen "tests.jar" auf maven central .

    
nawroth 17.03.2011, 09:17
quelle
1

Ich denke, der einfachste Weg ist, ein Verzeichnis mit neo4j-Datenbank zu löschen. Ich mache es in meinen Junit-Tests, nachdem ich alle Tests durchgeführt habe. Hier ist eine Funktion, die ich verwende, wo Datei das Verzeichnis neo4j ist:

%Vor%

Ich glaube ich habe es auf neo4j Wiki gefunden. Ich habe in dieser Diskussion eine andere Lösung gefunden. Sie können die Blueprint-API verwenden, die die Methode clear bereitstellt.

    
Skarab 14.04.2011 19:48
quelle
1

Wie Nawroth sagte, sollten Sie zum Testen die ImpermanentGraphDatabase verwenden. Es behebt praktisch alle Ihre Probleme automatisch.

Wenn Sie nicht testen, gibt es zwei Möglichkeiten. Ich habe generell zwei Methoden zur Verfügung. Einer ist die clearDB-Methode, in der ich den DB-Pfad rekursiv lösche. Ich benutze dafür die FileUtils-Bibliothek und es ist eine einzelne Codezeile:

%Vor%

Der andere ist, jeden Knoten in der Datenbank zu entfernen, mit Ausnahme der REFERENCE NODE, mit der Methode removeAllNodes. Dazu gibt es eine einfache Abfrage, die Sie so ausführen:

%Vor%

Wichtig ist, dass Sie die clearDB-Methode aufrufen müssen, BEVOR Sie ein neues EmbeddedGraphDatabase-Objekt erstellen. Die removeAllNodes-Methode wird aufgerufen, nachdem Sie dieses Objekt erstellt haben.

    
Pieter-Jan 19.12.2012 12:26
quelle
0

Es gibt eine Hilfsklasse

%Vor%

(es kommt von org.springframework.data.neo4j.support.node.Neo4jHelper und die Datenbank, auf die Sie verweisen, ist ein GraphDatabaseService)

Sie können es auch ablegen:

%Vor%     
Qualaelay 05.12.2014 22:22
quelle

Tags und Links