迁移指南
APOC v.5 升级与迁移
有关如何迁移 Neo4j 数据库的信息,请参阅Neo4j 迁移指南。
从 Neo4j v.4.4 迁移数据库
数据库只能从 Neo4j v.4.4 迁移到 Neo4j v.5。
自 Neo4j v5 版本起,APOC 已被拆分为两个独立的存储库:
-
APOC Core 库 - 由 Neo4j 官方支持。
-
APOC Extended - 一个由社区管理、非 Neo4j 官方管理的存储库。
APOC 完整包 (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();
名称 | 查询 | 选择器 | 参数 | 已安装 | 已暂停 |
---|---|---|---|---|---|
"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 v5 数据库。