在 Aura 中升级到 Neo4j 5
本教程介绍如何将运行 Neo4j 4 版本的 Aura 实例升级到 Neo4j 5 版本。
新的 AuraDS 和 AuraDB 免费实例默认使用 Neo4j 5,而其他所有实例在创建期间可以选择 Neo4j 4 和 5。 |
准备升级
驱动程序
Neo4j 的官方驱动程序在版本之间有一些重大且不兼容的更改,您需要了解这些更改。为了实现顺利迁移
-
检查您使用的每个驱动程序的不兼容更改,例如在 Python 驱动程序 和 GDS 客户端 中。
-
确保您切换到与 Neo4j 数据库版本一致的最新版本的驱动程序。这可以在升级您与 Aura 一起使用的 Neo4j 版本之前完成,因为 5.x 驱动程序向后兼容。
该 更新和迁移指南 包含所有信息并列出了所有不兼容更改。
索引
在 Neo4j 5 中,BTREE 索引被 RANGE、POINT 和 TEXT 索引替换。在迁移数据库之前,在 Neo4j 4 中,您应该为每个 BTREE 索引(或索引支持的约束)创建一个匹配的 RANGE、POINT 或 TEXT 索引。您可以对 Neo4j 4 数据库运行 SHOW INDEXES
以显示其索引。
在大多数情况下,RANGE 索引可以替换 BTREE。但是,在某些情况下,其他索引类型可能更合适,例如
-
如果属性值类型为
point
并且对属性使用distance
或bounding box
查询,则使用 POINT 索引。 -
如果属性值类型为
text
并且值可以大于 8Kb,则使用 TEXT 索引。 -
如果属性值类型为
text
并且在属性的查询中使用CONTAINS
和ENDS WITH
,则使用 TEXT 索引。
创建新索引后,应删除旧索引。以下示例显示了如何创建新的 RANGE 索引并删除现有的 index_name
索引
CREATE RANGE INDEX range_index_name FOR (n:Label) ON (n.prop1);
DROP INDEX index_name;
以下示例显示了如何创建由 RANGE 索引支持的约束
CREATE CONSTRAINT constraint_with_provider FOR (n:Label) REQUIRE (n.prop1) IS UNIQUE OPTIONS {indexProvider: 'range-1.0'}
有关创建索引的更多信息,请参阅 Cypher 手册→创建索引。
Cypher 更新
Neo4j 5 对 Cypher 语法和错误处理进行了一些更改。
Cypher 语法
Cypher 语言语法中的所有更改都详细说明在 Cypher 手册→移除、弃用、添加和扩展 中。仔细查看您要迁移到的版本中的此部分,并在您的代码中进行必要的更改。
以下是 Neo4j 5 中引入的主要更改的简短列表
已弃用的功能 | 详情 |
---|---|
|
改为使用
|
|
没有 可变长度关系 的
|
|
使用未转义的点创建数据库名称已弃用,改为转义数据库名称
|
Cypher 中的错误处理
Cypher 找到的许多语义错误都被报告为 Neo.ClientError.Statement.SyntaxError
,即使它们是语义错误而不是语法错误。在 Neo4j 5 中,Cypher 查询返回的元数据得到了改进。
-
某些警告代码的严重性已移至信息
-
SubqueryVariableShadowingWarning
→SubqueryVariableShadowing
-
NoApplicableIndexWarning
→NoApplicableIndex
-
CartesianProductWarning
→CartesianProduct
-
DynamicPropertyWarning
→DynamicProperty
-
EagerOperatorWarning
→EagerOperator
-
ExhustiveShortestPathWarning
→ExhaustiveShortestPath
-
UnboundedVariableLengthPatternWarning
→UnboundedVariableLengthPattern
-
ExperimentalFeature
→RuntimeExperimental
-
过程
某些过程已被命令替换
过程 | 替代 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- |
有关已移除和弃用的完整列表,请参阅更新和迁移指南。
Neo4j 连接器
如果您使用的是用于Apache Spark或Apache Kafka的 Neo4j 连接器,请确保其版本与 Neo4j 5 兼容。
下载中心中提供的 Neo4j BI 连接器与 Neo4j 5 兼容。