是否可以在MySQL数据库Neo4j中创建/删除不同的数据库?或者,至少,如何删除现有图形的所有节点和关系以获得干净的测试设置,例如,使用类似于rmrel
或rm
的shell命令?
答案 0 :(得分:95)
删除所有节点和关系的更简单的命令:
MATCH (n)
OPTIONAL MATCH (n)-[r]-()
DELETE n,r
答案 1 :(得分:94)
您可以使用rm -rf
删除整个图表目录,因为Neo4j不会存储除此之外的任何内容:
rm -rf data/*
此外,您当然可以遍历所有节点并删除它们之间的关系和节点本身,但这对于测试来说可能成本太高......
答案 2 :(得分:47)
在Neo4j中创建新数据库
在启动neo4j社区之前,请单击浏览选项
并选择其他目录
然后点击开始按钮。
在该目录上创建的新数据库
答案 3 :(得分:45)
我们可以删除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实例上运行测试代码。
conf/neo4j-server.properties
并将org.neo4j.server.webserver.port
设置为未使用的端口。./neo4j stop
和rm -rf data/graph.db
。有关详细信息,请参阅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)
最简单的答案是:否
“重新开始”的最佳方式是
或
有一种方法可以删除所有节点和关系(如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 数据库。
首先停止正在运行的 Neo4j 数据库。
sudo neo4j stop
其次,删除neo4j文件夹中data文件夹内的databases文件夹和transactions文件夹。那么在哪里可以找到 neo4j 文件夹?您可以通过执行 which neo4j
找到 neo4j 的可执行路径。检查通过该路径的 data 文件夹(它位于 neo4j 文件夹内)。然后进入 data 文件夹,您将看到 databases 和 transactions 文件夹。
rm -rf databases/
rm -rf transactions/
重启 Neo4j 服务器
sudo neo4j start