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

时间:2010-12-21 10:56:36

标签: database neo4j nodes sql-delete relationships

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

13 个答案:

答案 0 :(得分:95)

删除所有节点和关系的更简单的命令:

MATCH (n)
OPTIONAL MATCH (n)-[r]-()
DELETE n,r

答案 1 :(得分:94)

您可以使用rm -rf删除整个图表目录,因为Neo4j不会存储除此之外的任何内容:

rm -rf data/*

此外,您当然可以遍历所有节点并删除它们之间的关系和节点本身,但这对于测试来说可能成本太高......

答案 2 :(得分:47)

在Neo4j中创建新数据库

在启动neo4j社区之前,请单击浏览选项

enter image description here

并选择其他目录

enter image description here

enter image description here

然后点击开始按钮。

enter image description here

在该目录上创建的新数据库

答案 3 :(得分:45)

来自Neo4j 2.3,

我们可以删除all nodes with relationships

MATCH (n)
DETACH DELETE n

目前,在Noe4j中没有任何选项可以创建多个数据库。您需要制作多个Neo4j数据存储。请参阅reference

答案 4 :(得分:12)

快速而肮脏的方式正常工作:

bin/neo4j stop
rm -rf data/
mkdir data
bin/neo4j start

答案 5 :(得分:11)

对于需要干净图运行测试套件的任何其他人来说,https://github.com/jexp/neo4j-clean-remote-db-addon是一个很好的扩展,允许通过REST调用清除数据库。但显然,不要在生产中使用它!

答案 6 :(得分:7)

在不同的neo4j实例上运行测试代码。

  1. 将您的neo4j目录复制到新位置。用它来测试。进入新目录。
  2. 更改端口,以便您可以运行测试并同时正常使用它。要更改端口conf/neo4j-server.properties并将org.neo4j.server.webserver.port设置为未使用的端口。
  3. 在安装时启动测试服务器。在拆解时./neo4j stoprm -rf data/graph.db
  4. 有关详细信息,请参阅neo4j: How to Switch Database?docs

答案 7 :(得分:6)

在Neo4j 2.0.0中?不再受支持。改为使用OPTIONAL MATCH:

START n=node(*)
OPTIONAL MATCH (n)-[r]-()
delete n,r;

答案 8 :(得分:6)

最简单的答案是:

“重新开始”的最佳方式是

  • 移至另一个空数据文件夹

  • 完全关闭Neo4j
  • 清空旧数据文件夹
  • 重新启动Neo4j并将空文件夹设置为数据文件夹

有一种方法可以删除所有节点和关系(如here所述)

MATCH (n)
OPTIONAL MATCH (n)-[r]-()
DELETE n,r

答案 9 :(得分:1)

在2.0.0 -M6中您可以执行以下Cypher脚本来删除所有节点和关系:

start n=node(*)
match (n)-[r?]-()
delete n,r

答案 10 :(得分:1)

从版本3开始,我相信现在可以创建单独的数据库实例,因此它们的位置略有不同。

参考:https://neo4j.com/developer/guide-import-csv/

  

--into retail.db显然是目标数据库,不能包含现有数据库。

在我的Ubuntu框中,该位置位于:

/var/lib/neo4j/data/databases我目前只看到graph.db我认为必须是默认值。

答案 11 :(得分:0)

你可以删除你的数据文件,如果你想通过这种方式,我建议你删除你的graph.db,例如。否则你将弄乱你的身份验证信息。

答案 12 :(得分:0)

如果你有非常大的数据库,

`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