如何在Neo4j中删除/创建数据库?

109

在图形数据库Neo4j中,是否可以像MySQL一样创建/删除不同的数据库?或者至少如何删除现有图形的所有节点和关系,以便在测试中获得干净的设置,例如使用类似于rmrelrm的shell命令?

14个回答

1
在2.0.0-M6版本中,您可以执行以下Cypher脚本来删除所有节点和关系:
start n=node(*)
match (n)-[r?]-()
delete n,r

2
不幸的是,在最新的2.0.0版本中,这会产生一个错误:SyntaxException:问号不再用于可选模式-请改用OPTIONAL MATCH代替(第1行,第26列) ==>“start n=node(*) match (n)-[r?]-() delete n,r” - richj
我不明白为什么会有人踩,因为我的回答清楚地说了“在2.0.0-M6版本中”,而当时我回答这个问题时,这是最新的版本,而其他人提供了针对“当前”最新版本的正确答案。 - Martin Seeler

1
如果您有非常大的数据库,
`MATCH (n) DETACH DELETE n`

这会花费很多时间,而且数据库可能会卡住(我尝试使用它,但对于非常大的数据库不起作用)。因此,以下是我如何在Linux服务器上删除较大的Neo4j数据库。
  1. 首先停止正在运行的Neo4j数据库。

    sudo neo4j stop

  2. 其次,在neo4j文件夹中的data文件夹内删除databases文件夹和transactions文件夹。那么在哪里可以找到neo4j文件夹呢?您可以通过执行which neo4j来查找neo4j可执行文件路径。通过该路径检查data文件夹(它位于neo4j文件夹内),然后进入data文件夹,您将看到databasestransactions文件夹。

    rm -rf databases/ rm -rf transactions/

  3. 重新启动Neo4j服务器

    sudo neo4j start


0

你可以删除你的数据文件,如果你想要这样做,我建议只删除你的 graph.db 文件,否则会干扰你的身份验证信息。


0

创建新数据库 dbms.databases.my_new_database_name=neo4j

切换数据库 USE my_new_database_name

删除数据库 MATCH (n) DETACH DELETE n


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接