背景说明
测试的时候,使用的 neo4j 是 v4.x 的版本。
当时想使用一下生产的数据,看了一下已有的服务是 v3.5.x 的版本,就像看一下二者是否兼容?
参考资料
Cypher 语法
变化详情-> Cypher Manual → Removals, deprecations, additions and extensions
从4.0版本开始,参数由 {parameter} 变为 $parameter
这个变化影响比较大,导致原来的 cypher 语法不兼容。
用户认证
3.x 版本用户认证信息保存于 Flat File 中,4.0 开始采用更加复杂和安全的方式存储于特定的数据库system中,并且采用基于角色的管理控制方式。
数据库
从4.0版起,Neo4j支持在同一DBMS中管理多个数据库。
这些数据库的元数据(包括相关的安全模型)保存在一个称为system数据库的特殊数据库中。
默认安装完之后,应当有两个数据库
system - the system database, containing metadata on the DBMS and security configuration.
neo4j - the default database. A different name can be configured before starting Neo4j for the first time.
随着多个数据库的引入,数据库命名规则发生了变化。例如,不再可以在数据库名称中使用下划线
为了支持多个数据库,存储文件、事务文件和日志文件不再存储在基本目录中。每个数据库中的文件被分隔成不同的目录存储
指标变化
在4.x版本,有两类指标,全局指标和数据库本地指标,指标命名相对于3.x版本有所不同,具体查看Operations Manual → Metrics
注意:4.2版本指标默认开启发生变化,任何你想开启的指标必须配置在 metrics.filter 中,此外,在4.2版本中,默认情况下不再通过JMX公开指标。这些可以通过添加metrics.jmx来启用。
配置 enabled=true 在neo4j.conf中。
备份变化
从Neo4j 4.0开始,每个数据库都是单独备份的。因此,为他们中的每一个计划备份策略非常重要。有关为您的设置设计适当备份策略的详细信息,请参阅 备份和恢复
使用neo4j-admin backup命令的–database选项指定要备份的数据库。有关更多信息,请参阅 备份联机数据库。
–name参数已删除。以前使用–backup-dir时,它用于指定路径的最后一部分。路径的最后一部分现在从–database参数中推断出来,该参数指定服务器上的数据库名称。
如果以前使用–name自定义备份路径,例如,通过包含时间戳,现在可以使用–backup-dir
JMX变化
在3.x中,Neo4j公开了几个JMX MBean,以便除了Neo4j所公开的指标之外,还提供一些监控信息。在某些情况下,提供的数据不完整或不正确,在某些情况中,不同的bean甚至提供了冲突信息。所有以前的JMX端点(org.neo4j:)都已被删除,并被一组新的bean(neo4j.metrics:)所取代,这些bean暴露的信息与相应的neo4j指标完全相同。
JMX MBean仅在Enterprise Edition中可用。
Neo4J API变化
Neo4j 4.0是第一个需要JDK 11的主要版本。现在可以为JDK 11编译自定义扩展和过程,例如-target 11。通常建议使用最新的JDK 11来访问所有可用的修复和性能改进。
详细信息请查看
小结
这种不同的版本一定要注意一下,不然踩坑比较麻烦。
要保证测试环境和生产的版本兼容性。
在不同版本升级的时候,一定要非常谨慎。
如果我们在做一些设计的时候,没有必要,不要随便做一些对用户可见的变更,导致不兼容很麻烦。
还有解决方案就是,不要依赖这个库,最好申请一下其他的资源。
参考资料
chat