類GraphDatabaseService
似乎不提供任何方法來刪除/清除數據庫。有沒有其他方法可以用Java刪除/清除當前的嵌入式數據庫?如何用java刪除neo4j嵌入式數據庫?
回答
只需執行GraphDatabaseService.shutdown(),並在返回後,刪除數據庫文件(使用代碼如this)。
您也可以使用getAllNodes()遍歷所有節點,刪除它們的關係和節點本身。也許避免刪除參考節點。
如果您的用例正在測試,那麼您可以使用ImpermanentGraphDatabase,這將在關機後刪除數據庫。
要使用ImpermanentGraphDatabase將neo4j-kernel測試jar/dependency添加到您的項目中。查找名稱以「tests.jar」結尾的文件on maven central。
我覺得最簡單的方法是用neo4j數據庫刪除一個目錄。我在運行所有測試後,在我的junit測試中執行此操作。這是一個功能我用其中文件是Neo4j的目錄:
public static void deleteFileOrDirectory(final File file) {
if (file.exists()) {
if (file.isDirectory()) {
for (File child : file.listFiles()) {
deleteFileOrDirectory(child);
}
}
file.delete();
}
}
我想我發現它Neo4j的維基。我在this discussion中發現了另一個解決方案。您可以使用Blueprint API,它提供了清晰的方法。
像nawroth說,測試你應該使用ImpermanentGraphDatabase。它幾乎可以自動修復所有問題。
如果你沒有測試,真的有兩種方法。我通常有兩種方法可供我使用。一個是clearDB方法,其中我遞歸刪除數據庫路徑。我用的是fileutils中的庫這一點,這幾乎是一個單一的代碼行:
FileUtils.deleteRecursively(new File(DB_PATH));
另一種是刪除數據庫中除了參考節點的每個節點,使用removeAllNodes方法。有這個簡單的查詢,您執行這樣的:
engine.execute("START n = node(*), ref = node(0) WHERE n<>ref DELETE n");
需要注意的是,你必須在你創建一個新的EmbeddedGraphDatabase對象調用clearDB方法。 removeAllNodes方法在創建此對象後調用。
有一個輔助類
Neo4jHelper.cleanDb(db);
(它來自org.springframework.data.neo4j.support.node.Neo4jHelper和您引用的DB是一個GraphDatabaseService)
您也有能夠轉儲它:
Neo4jHelper.dumpDb();
- 1. 插入,刪除(快速)blob嵌入式java數據庫
- 2. 如何刪除neo4j圖形數據庫
- 3. Java:嵌入式數據庫
- 4. 如何在面板中可視化neo4j嵌入式數據庫?
- 5. 哪個Neo4j嵌入式Neo4j Clojure庫?
- 6. 使用嵌入在Java中的Neo4j作爲遠程數據庫
- 7. 使用Java GUI刪除數據庫或插入數據庫
- 8. 以嵌入式數據庫方式播放neo4j
- 9. 如何用Java導入嵌入式Neo4J中的GraphML DB?
- 10. 帶嵌入式數據庫的Java EE
- 11. Java嵌入式數據庫持久性
- 12. 嵌入式nosql開源java數據庫
- 13. Clojure的嵌入式(純Java)數據庫
- 14. 我可以在嵌入式neo4j數據庫上使用Spring Data Neo4j 4.0.0嗎?
- 15. 如何使用Python將嵌入式Neo4j圖形數據庫轉換爲GraphML?
- 16. 何時使用嵌入式數據庫
- 17. 如何通過java使用neo4j來重置neo4j數據庫?
- 18. 在運行時設置嵌入式neo4j數據庫的路徑
- 19. 無法探索由嵌入式neo4j創建的數據庫
- 20. 帶嵌入式數據庫的Neo4j服務器
- 21. Neo4j OGM連接到現有的嵌入式數據庫
- 22. Neo4j嵌入式數據庫忽略事務日誌限制
- 23. 在嵌入式Neo4j數據庫中查看查詢
- 24. 將Java嵌入式數據庫轉換爲獨立數據庫
- 25. 用於大型數據集的嵌入式Java數據庫
- 26. Neo4j嵌入式HighlyAvailableGraphDatabase
- 27. 如何導入數據庫(檔案)neo4j
- 28. Neo4j從Java嵌入式在線備份
- 29. 如何在嵌入模式下創建Java數據庫
- 30. Java和Firebird嵌入式如何創建數據庫?
除刪除文件之外還有其他辦法嗎? – zbdiablo 2011-03-17 10:26:20
請參閱http://wiki.neo4j.org/content/Testing_with_Neo4j#Use_the_ImpermanentGraphDatabase – DNA 2011-12-02 09:24:29