首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >清除Neo4j嵌入式数据库

清除Neo4j嵌入式数据库
EN

Stack Overflow用户
提问于 2015-07-23 20:51:38
回答 1查看 1K关注 0票数 2

对于新版本的Spring Neo4j,我不能使用Neo4jHelper.cleanDb(db);

那么,在我的应用程序中彻底清除嵌入式Neo4j数据库的最有效方法是什么?

为此,我实现了我自己的util方法,但是这个方法很慢:

代码语言:javascript
复制
public static void cleanDb(Neo4jTemplate template) {
    template.query("MATCH (n) OPTIONAL MATCH (n)-[r]-() DELETE n,r", null);
}

如何正确清除/删除数据库?

更新

这是类似的问题How to reset / clear / delete neo4j database?,但我不知道如何以编程方式关闭嵌入式Neo4j,以及如何在删除之后启动它。

我使用Spring Neo4j,并根据用户请求清除/删除现有数据库,并使用新数据重新创建它。如何在建议调用关闭方法之后启动新的嵌入式数据库?

用例:

在工作应用程序上,我配置了嵌入式数据库:

代码语言:javascript
复制
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个节点预先填充了这个数据库。在用户请求时,我需要清除这个数据库并使用一个新的数据填充它。如何正确快速地清除现有数据库?

我可以调用Neo4j数据库API来在database.shutdown()之后创建新的节点,还是需要先初始化新的数据库?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-24 00:28:28

参见有关问题的另一个答案。在java内部,可以使用GraphDatabaseService#shutdown()方法关闭嵌入式数据库。

在那里,有一堆不同的方法可以删除底层目录see this other answer

因此,一般的答案仍然可以是一样的:

  1. 使用neo4j java API关闭数据库
  2. 从磁盘中删除数据库内容
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31597809

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档