106

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

4

13 回答 13

100

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

rm -rf data/*

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

于 2010-12-22T09:32:22.843 回答
100

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

MATCH (n)
OPTIONAL MATCH (n)-[r]-()
DELETE n,r
于 2014-01-21T06:32:57.940 回答
52

从 Neo4j 2.3 开始,

我们可以删除所有有关系的节点

MATCH (n)
DETACH DELETE n

目前没有任何选项可以在 Noe4j 中创建多个数据库。您需要对 Neo4j 数据进行多次存储。请参阅参考资料

于 2015-10-28T13:07:13.263 回答
47

在 Neo4j 中创建新数据库

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

在此处输入图像描述

并选择一个不同的目录

在此处输入图像描述

在此处输入图像描述

并单击开始按钮。

在此处输入图像描述

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

于 2014-05-29T09:53:47.377 回答
13

快速而肮脏的方式,效果很好:

bin/neo4j stop
rm -rf data/
mkdir data
bin/neo4j start
于 2014-07-14T20:48:33.860 回答
11

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

于 2011-09-29T17:32:00.190 回答
7

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

  1. 将 neo4j 目录复制到新位置。使用它进行测试。cd 进入新目录。
  2. 更改端口,以便您可以同时运行测试并正常使用它。更改端口打开conf/neo4j-server.properties并设置org.neo4j.server.webserver.port为未使用的端口。
  3. 在设置时启动测试服务器。做./neo4j stoprm -rf data/graph.db拆解。

有关更多详细信息,请参阅neo4j:如何切换数据库?文档

于 2013-03-20T17:06:18.770 回答
6

在 Neo4j 2.0.0 中?不再支持。改用可选匹配:

START n=node(*)
OPTIONAL MATCH (n)-[r]-()
delete n,r;
于 2014-02-08T03:25:08.167 回答
6

最简单的答案是:NO

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

  • 移动到另一个空数据文件夹

或者

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

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

MATCH (n)
OPTIONAL MATCH (n)-[r]-()
DELETE n,r
于 2015-06-11T22:19:51.287 回答
1

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

start n=node(*)
match (n)-[r?]-()
delete n,r
于 2013-11-14T10:02:11.780 回答
1

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

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

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

在我的 Ubuntu 盒子上,位置位于:

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

于 2017-04-25T11:50:52.777 回答
0

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

于 2015-10-07T14:57:42.647 回答
0

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

`MATCH (n) DETACH DELETE n`

会花费很多时间,而且数据库可能会卡住(我尝试使用它,但不适用于非常大的数据库)。所以这就是我如何在 linux 服务器上删除一个更大的 Neo4j 数据库。

  1. 首先停止正在运行的 Neo4j 数据库。

    sudo neo4j stop

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

    rm -rf databases/ rm -rf transactions/

  3. 重启 Neo4j 服务器

    sudo neo4j start

于 2021-07-26T17:37:50.507 回答