迁移指南
APOC v.5 升级与迁移
有关如何迁移 Neo4j 数据库的信息,请参阅 Neo4j 迁移指南。
从 Neo4j v.4.4 迁移数据库
数据库只能从 Neo4j v.4.4 迁移到 Neo4j v.5。
从 Neo4j 5 版本开始,APOC 已拆分为两个独立的存储库:
-
APOC Core Library(APOC 核心库) - 由 Neo4j 官方支持。
-
APOC Extended - 社区管理的存储库,不由 Neo4j 官方管理。
APOC Full 包(APOC Core + APOC Extended)不再提供。若要使用不受支持的 APOC Extended 过程和函数,请参阅 APOC Extended 存储库。
APOC 配置
从 APOC v.5 开始,neo4j.conf 不再支持 apoc.* 配置设置。所有配置设置都应放在 apoc.conf 中。它们也可以通过环境变量进行设置。
|
如果配置设置仍在 |
APOC 触发器
将 Neo4j 从 v.4.4 迁移到 v.5 需要恢复备份。由于 APOC 触发器存储在 system 数据库上,它们不包含在备份中,因此不会与其余数据一起迁移。
因此,必须使用 apoc.trigger.install 过程重新创建所有触发器,并根据需要调整 apoc.trigger.stop。
例如,在已经安装了现有 APOC 触发器的 Neo4j v.4.4 数据库中,可以运行以下查询(路由到 neo4j 数据库):
CALL apoc.trigger.list();
| 名称 (name) | query | selector | params | installed | paused |
|---|---|---|---|---|---|
"count-removals" |
{"phase":"after"} |
{time: 1674218712858} |
TRUE |
FALSE |
|
"count-relationships" |
{} |
{} |
TRUE |
TRUE |
上述触发器可以通过执行以下操作在 Neo4j v.5 数据库上重新创建(路由到系统 LEADER 数据库):
CALL apoc.trigger.install(
'neo4j',
'count-removals',
"MATCH (c:NodesCounter) SET c.count = c.count + size([f IN $deletedNodes WHERE id(f) > 0] SET time = $time)",
{phase: 'after'},
{params: {time: 1674218712858}}
);
CALL apoc.trigger.install(
'neo4j',
'count-relationships',
"MATCH (c:RelationshipsCounter) SET c.count = c.count + size([f IN $createdRelationships WHERE id(f) > 0])",
{}
);
CALL apoc.trigger.stop('neo4j', 'count-relationships')
至此,APOC 触发器已成功迁移到您的新 Neo4j v.5 数据库。