GraphDatabaseService
类似乎没有提供任何删除 / 清除数据库的方法。是否有其他方法可以使用 Java 删除 / 清除当前的嵌入式数据库?
GraphDatabaseService
类似乎没有提供任何删除 / 清除数据库的方法。是否有其他方法可以使用 Java 删除 / 清除当前的嵌入式数据库?
我认为最简单的方法是删除neo4j数据库的目录。在运行所有测试后,我会在我的junit测试中执行此操作。这是我使用的一个函数,其中file是neo4j目录:
public static void deleteFileOrDirectory( final File file ) {
if ( file.exists() ) {
if ( file.isDirectory() ) {
for ( File child : file.listFiles() ) {
deleteFileOrDirectory( child );
}
}
file.delete();
}
}
我想我在neo4j的维基上找到了它。我在这个讨论中找到了另一个解决方案。您可以使用Blueprint API,它提供了clear方法。
像nawroth所说,对于测试,您应该使用ImpermanentGraphDatabase。它几乎可以自动修复所有问题。
如果您不是在进行测试,则有两种方法可供选择。我通常有两种方法可用。一种是clearDB方法,在其中我递归删除DB路径。我使用FileUtils库进行此操作,这基本上只需要一行代码:
FileUtils.deleteRecursively(new File(DB_PATH));
engine.execute("START n = node(*), ref = node(0) WHERE n<>ref DELETE n");
这里有一个辅助类
Neo4jHelper.cleanDb(db);
它来自org.springframework.data.neo4j.support.node.Neo4jHelper,你所引用的数据库是GraphDatabaseService。
你还有能力将其转储:
Neo4jHelper.dumpDb();