Database 如何在Neo4j中删除/创建数据库?
是否可以像MySQL一样在graph数据库中创建/删除不同的数据库?或者,至少,如何删除现有图形的所有节点和关系以获得干净的测试设置,例如,使用类似于Database 如何在Neo4j中删除/创建数据库?,database,neo4j,nodes,sql-delete,relationships,Database,Neo4j,Nodes,Sql Delete,Relationships,是否可以像MySQL一样在graph数据库中创建/删除不同的数据库?或者,至少,如何删除现有图形的所有节点和关系以获得干净的测试设置,例如,使用类似于rmrel或rm的shell命令?您可以使用rm-rf删除整个图形目录,因为Neo4j没有存储以下内容以外的任何内容: rm -rf data/* 当然,您也可以遍历所有节点并删除它们之间的关系和节点本身,但这对于测试来说可能太昂贵了…对于任何需要干净图形来运行测试套件的人来说,这是一个很好的扩展,允许通过REST调用清除db。当然,不要在生产中
rmrel
或rm
的shell命令?您可以使用rm-rf
删除整个图形目录,因为Neo4j没有存储以下内容以外的任何内容:
rm -rf data/*
当然,您也可以遍历所有节点并删除它们之间的关系和节点本身,但这对于测试来说可能太昂贵了…对于任何需要干净图形来运行测试套件的人来说,这是一个很好的扩展,允许通过REST调用清除db。当然,不要在生产中使用它 在不同的neo4j实例上运行测试代码
conf/neo4j server.properties
,并将org.neo4j.server.webserver.port
设置为未使用的端口/neo4j停止
和rm-rf data/graph.db
有关更多详细信息,请参见2.0.0-M6中的和。,您可以执行以下密码脚本来删除所有节点和关系:
start n=node(*)
match (n)-[r?]-()
delete n,r
删除所有节点和关系的更简单命令:
MATCH (n)
OPTIONAL MATCH (n)-[r]-()
DELETE n,r
在Neo4j 2.0.0中?不再支持。改为使用可选匹配:
START n=node(*)
OPTIONAL MATCH (n)-[r]-()
delete n,r;
在Neo4j中创建新数据库 在启动neo4j社区之前,请单击浏览选项 然后选择一个不同的目录 然后单击开始按钮
在该目录下创建的新数据库快速且肮脏的工作方式:
bin/neo4j stop
rm -rf data/
mkdir data
bin/neo4j start
最简单的答案是:不 “重新开始”的最佳方式是
- 移动到另一个空数据文件夹
- 完全关闭Neo4j
- 清空旧数据文件夹
- 重新启动Neo4j并将空文件夹设置为数据文件夹
你可以删除你的数据文件,如果你想通过这种方式,我建议只删除你的graph.db,例如。否则,您的身份验证信息就会混乱 从Neo4j 2.3, 我们可以删除
目前没有任何选项可以在Noe4j中创建多个数据库。您需要对Neo4j数据进行多个存储。请参阅。从第3版开始,我相信现在可以创建单独的数据库实例,因此它们的位置略有不同 指: --into retail.db显然是目标数据库,它不能包含现有数据库 在我的Ubuntu框中,位置位于:
/var/lib/neo4j/data/databases
我目前只看到了graph.db
,我认为这一定是默认值。如果迭代所有节点,最好让引用节点保留。graph目录在哪里?@Pramod its在neo4j目录的数据目录中。使用自制软件时,您不会错过itOn MacOSX:/usr/local/cillar/neo4j/community-1.9.2-unix/libexec/data在执行此命令之前,最好先停止neo4j服务器。它似乎会删除节点0。如何重新创建它?实际上,它跳过了引用节点()。但是,如果引用节点不存在(并且您需要它),那么您需要从一个干净的数据目录开始,因为还没有setRefenceNode()
call()。不幸的是,这在最新的2.0.0版本中产生了一个错误:SyntaxException:问号不再用于可选模式-改用可选匹配(第1行,第26列)=>“开始n=节点(*)匹配(n)-[r?]-()删除n,r”“我不理解反对票,因为答案清楚地显示在2.0.0-M6中,这是我回答问题时的最新版本,而其他人提供了当前最新版本的正确答案。声明+1。但是请注意,删除所有节点并不意味着完全忘记使用的标签。浏览器仍将显示所有标签。节点属性和关系标签同上。@DilumRanatunga 1。你知道如何让neo忘记标签吗?2.如果节点被删除,或者关系标签被删除,那么节点属性如何保持?我不是指实际值;我指的是属性名称本身。数据库中可能不仅有节点和边,还有索引,要去掉它们更困难。也,我只是通过大量重复测试(包括删除)破坏了一个DB实例,看起来物理上删除了DB文件,让Neo4J在重新启动时重新创建它们可以明显提高性能。我在docker容器中的Neo4J内存不足。如果你不想求助于文件系统,最好的答案是。问题是这种方法不会删除约束或索引
MATCH (n)
OPTIONAL MATCH (n)-[r]-()
DELETE n,r
MATCH (n)
DETACH DELETE n