从不同版本的Neo4j转储数据或将数据恢复到这些版本

时间:2019-05-06 12:57:25

标签: neo4j cypher backup

我正在研究Neo4j支持的项目。我想找到一种转储数据库并以版本间方式还原它的方法(例如,从版本2.*中转储数据并将其加载到版本3.5.6中,反之亦然!)。

我需要的是一种提取和重新加载数据的方法,该方法受尽可能多的Neo4j版本支持。我已经签出了外部库,例如APOC,但看来它们不适用于较新版本的Neo4j。过去,我还尝试过残酷地复制数据文件,但是如果Neo4j版本太远,则会引发错误。

到目前为止,我发现最好的版本间解决方案是使用this blog post中所述的Neo4j的REST API。我执行这样的查询

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数据库中。当然,最终的索引或约束需要在目的地中重新创建。

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

0 个答案:

没有答案