清除 Neo4j 嵌入式数据库
Clear Neo4j Embedded database
使用新版本的 Spring Data Neo4j 我无法使用 Neo4jHelper.cleanDb(db);
那么,在我的应用程序中完全清除嵌入式 Neo4j 数据库的最有效方法是什么?
我为此实现了自己的util方法,但是这个方法很慢:
public static void cleanDb(Neo4jTemplate template) {
template.query("MATCH (n) OPTIONAL MATCH (n)-[r]-() DELETE n,r", null);
}
如何正确clear/delete数据库?
已更新
这是一个类似的问题How to reset / clear / delete neo4j database?,但我不知道如何以编程方式关闭 Embedded Neo4j 以及如何在删除后启动它。
我使用 Spring Data Neo4j,根据用户请求,我想 clear/delete 现有数据库并用新数据重新创建它。建议调用关闭方法后如何启动新的嵌入式数据库?
用例:
在工作应用程序上,我配置了嵌入式数据库:
GraphDatabaseService graphDb = new GraphDatabaseFactory()
.newEmbeddedDatabaseBuilder(environment.getProperty(NEO4J_EMBEDDED_DATABASE_PATH_PROPERTY))
.setConfig(GraphDatabaseSettings.node_keys_indexable, "name,description")
.setConfig(GraphDatabaseSettings.node_auto_indexing, "true")
.newGraphDatabase();
另外,我用 1000000 个节点预填充了这个数据库。根据用户请求,我需要清除该数据库并用新数据填充它。如何正确快速清除现有数据库?
我可以在 database.shutdown()
之后调用 Neo4j 数据库 API 来创建新节点,还是需要在它之前初始化新数据库?
参见相关问题的其他答案。在 java 内部,您可以使用 GraphDatabaseService#shutdown()
方法关闭嵌入式数据库。
从那里,有很多不同的方法可以删除底层目录,see this other answer。
所以一般的答案还是一样的:
- 使用neo4j关闭数据库javaAPI
- 从磁盘中删除数据库内容
使用新版本的 Spring Data Neo4j 我无法使用 Neo4jHelper.cleanDb(db);
那么,在我的应用程序中完全清除嵌入式 Neo4j 数据库的最有效方法是什么?
我为此实现了自己的util方法,但是这个方法很慢:
public static void cleanDb(Neo4jTemplate template) {
template.query("MATCH (n) OPTIONAL MATCH (n)-[r]-() DELETE n,r", null);
}
如何正确clear/delete数据库?
已更新
这是一个类似的问题How to reset / clear / delete neo4j database?,但我不知道如何以编程方式关闭 Embedded Neo4j 以及如何在删除后启动它。
我使用 Spring Data Neo4j,根据用户请求,我想 clear/delete 现有数据库并用新数据重新创建它。建议调用关闭方法后如何启动新的嵌入式数据库?
用例:
在工作应用程序上,我配置了嵌入式数据库:
GraphDatabaseService graphDb = new GraphDatabaseFactory()
.newEmbeddedDatabaseBuilder(environment.getProperty(NEO4J_EMBEDDED_DATABASE_PATH_PROPERTY))
.setConfig(GraphDatabaseSettings.node_keys_indexable, "name,description")
.setConfig(GraphDatabaseSettings.node_auto_indexing, "true")
.newGraphDatabase();
另外,我用 1000000 个节点预填充了这个数据库。根据用户请求,我需要清除该数据库并用新数据填充它。如何正确快速清除现有数据库?
我可以在 database.shutdown()
之后调用 Neo4j 数据库 API 来创建新节点,还是需要在它之前初始化新数据库?
参见相关问题的其他答案。在 java 内部,您可以使用 GraphDatabaseService#shutdown()
方法关闭嵌入式数据库。
从那里,有很多不同的方法可以删除底层目录,see this other answer。
所以一般的答案还是一样的:
- 使用neo4j关闭数据库javaAPI
- 从磁盘中删除数据库内容