从旧版本升级

本页面包含驱动程序从 5.28 版本到 6.x 版本的新功能和重大更改列表。有关完整的更改列表,请参阅 驱动程序更新日志

6.x 系列的最新驱动程序版本兼容 Neo4j 4.4、5.x 和 202[56].x 服务器,因此您可以在升级服务器之前先升级驱动程序。同时,驱动程序 5.28 版本向前兼容 Neo4j 202[56].x 服务器,因此您也可以先升级服务器再升级驱动程序;但考虑到回滚应用程序升级比回滚服务器升级更容易,建议先从驱动程序开始。

将 Neo4j 服务器升级到较新版本时,应用程序中的 Cypher 查询可能也需要更新。驱动程序迁移助手(Drivers Migration Assistent)不涵盖 Cypher 的更改。
请参阅 Cypher → 弃用、新增与兼容性

新功能

新增 Vector 类型

Vector 类型允许在数据库中存储和检索 Cypher VECTOR 对象。VECTOR 类型适用于高效存储同构数字列表,例如嵌入(embeddings)。

异常中包含 GQL 状态对象

异常对象现在还以 GQL 状态对象的形式公开错误。Neo4j 错误代码与 GQL 错误代码的主要区别在于后者更加细化。有关更多信息,请参阅 错误处理

重大更改与弃用

被弃用的功能很可能会在下一个主要版本中被移除。

版本 消息 状态

6.0

最低支持的 Go 版本为 1.24。

已更改

6.0

Session.WriteTransaction()Session.ReadTransaction() 已被移除,取而代之的是 Session.ExecuteWrite()Session.ExecuteRead()。逻辑相同,但参数类型已从 Transaction 更改为 ManagedTransaction,且受管事务不再提供显式事务处理方法(.Commit().Rollback().Close())。

已移除

6.0

neo4j.Transaction 已被移除,取而代之的是 neo4j.ExplicitTransaction

已移除

6.0

neo4j.TransactionWork 已被移除,取而代之的是 neo4j.ManagedTransactionWork

已移除

6.0

Config.RootCAs 已被移除,取而代之的是 Config.TlsConfig

已移除

6.0

neo4j.Config 已被移除,取而代之的是 config.Config

已移除

6.0

neo4j.ServerAddress 已被移除,取而代之的是 config.ServerAddress

已移除

6.0

neo4j.NewServerAddress() 已被移除,取而代之的是 config.NewServerAddress()

已移除

6.0

neo4j.ServerAddressResolver 已被移除,取而代之的是 config.ServerAddressResolver

已移除

6.0

日志

已移除

6.0

与通知(Notifications)相关的对象已从全局命名空间 neo4j 移动到了 neo4j/notifications

因此,neo4j.(NotificationSeverity|Warning|Information|UnknownSeverity|NotificationCategory|Hint|Unrecognized|Unsupported|Performance|Deprecation|Generic|Security|Topology|UnknownCategory) 已被移除,取而代之的是 notifications.(NotificationSeverity|Warning|Information|UnknownSeverity|NotificationCategory|Hint|Unrecognized|Unsupported|Performance|Deprecation|Generic|Security|Topology|UnknownCategory)

已移除

5.0

Node.IdRelationship.Id 已被弃用,建议使用 Node.ElementIdRelationship.ElementId。旧标识符为 Int64,而新的 ElementIds 为 String。

已弃用

6.0

带有 *WithContext 后缀的函数和类型已被弃用,建议使用无后缀的名称,这些名称默认支持上下文(context-aware)。具体如下:

  • NewDriverWithContext() 已被弃用,建议使用 NewDriver()

  • neo4j.SingleTWithContext() 已被弃用,建议使用 neo4j.SingleT()

  • neo4j.CollectWithContext() 已被弃用,建议使用 neo4j.Collect()

  • neo4j.CollectTWithContext() 已被弃用,建议使用 neo4j.CollectT()

  • neo4j.SingleWithContext() 已被弃用,建议使用 neo4j.Single()

  • neo4j.SessionWithContext 已被弃用,建议使用 neo4j.Session

  • neo4j.DriverWithContext 已被弃用,建议使用 neo4j.Driver

  • neo4j.ResultWithContext 已被弃用,建议使用 neo4j.Result

已弃用

6.0

类型 StatementType 已被弃用,建议使用 QueryType

因此,ResultSummary.StatementType() 已被弃用,建议使用 ResultSummary.QueryType()

已弃用