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

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。当然,不要在生产中

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

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

rm -rf data/*

当然,您也可以遍历所有节点并删除它们之间的关系和节点本身,但这对于测试来说可能太昂贵了…

对于任何需要干净图形来运行测试套件的人来说,这是一个很好的扩展,允许通过REST调用清除db。当然,不要在生产中使用它

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

  • 将neo4j目录复制到新位置。使用此选项进行测试。将cd放入新目录
  • 更改端口,以便可以同时运行测试和正常使用它。要更改端口,请打开
    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