从不同版本的Neo4j转储和恢复数据

从不同版本的Neo4j转储和恢复数据,neo4j,cypher,backup,Neo4j,Cypher,Backup,我在一个由Neo4j支持的项目上工作。我想找到一种方法来转储数据库并以版本间的方式恢复它(例如,从版本2.*转储数据并将其加载到版本3.5.6,反之亦然!) 我需要的是一种尽可能多的Neo4j版本支持的提取和重新加载数据的方法。我已经签出了APOC之类的外部库,但它们似乎不适用于旧版本的Neo4j。在过去,我也尝试过残酷地复制数据文件,但如果Neo4j版本太远,这会导致错误 到目前为止,我发现最好的跨版本解决方案是使用Neo4j的RESTAPI,如中所述。我执行这样的查询 curl -H acc

我在一个由Neo4j支持的项目上工作。我想找到一种方法来转储数据库并以版本间的方式恢复它(例如,从版本
2.*
转储数据并将其加载到版本
3.5.6
,反之亦然!)

我需要的是一种尽可能多的Neo4j版本支持的提取和重新加载数据的方法。我已经签出了APOC之类的外部库,但它们似乎不适用于旧版本的Neo4j。在过去,我也尝试过残酷地复制数据文件,但如果Neo4j版本太远,这会导致错误

到目前为止,我发现最好的跨版本解决方案是使用Neo4j的RESTAPI,如中所述。我执行这样的查询

curl -H accept:application/json -H content-type:application/json \
  -d '{"statements":[{"statement":"MATCH ... RETURN ..."}]}' \
  http://localhost:7474/db/data/transaction/commit
检索节点和rel(以及它们的标签和属性)并在JSON文件中序列化它们。然后,我使用自定义Python脚本处理这些JSON,以便在新的Neo4j数据库中重新加载数据。当然,最终的索引或约束需要在目标中重新创建


我想知道是否有比mine更聪明的方法来做到这一点,避免版本间的麻烦。

不确定不同版本之间是否支持转储和加载,但您是否检查了此链接?是的。看起来这仅适用于
3.0+
。我正在寻找可以在版本内移动数据的东西不确定不同版本之间是否支持转储和加载,但您是否检查了此链接?是的。看起来这仅适用于
3.0+
。我正在寻找的东西,可以移动数据的内部版本