从控制台创建 Neo4j 数据库时,Gremlin 创建什么版本的数据存储?

What version data store does Gremlin create when creating a Neo4j database from the console?

我是 运行 Gremlin v 3.2.5,当我尝试从 Gremlin 控制台或使用 neo4j-gremlin API 连接到 Neo4j 数据库时,我不断收到错误消息:

Failed to start Neo4j with an older data store version. To enable automatic upgrade, please set configuration parameter "allow_store_upgrade=true"

我使用 neo4j-java-驱动程序 1.4.3 和 neo4j 3.2.3 创建 Neo4j 数据库,就像在 scala 中一样:

  val graphDb = new GraphDatabaseFactory().newEmbeddedDatabaseBuilder(new File(dbPath))
    .setConfig(GraphDatabaseSettings.allow_store_upgrade, "true").newGraphDatabase()

或在 Gremlin 控制台中

gremlin> conf = new BaseConfiguration()
gremlin> conf.setProperty(Neo4jGraph.CONFIG_CONF + "dbms.allow_format_migration", "true")
gremlin> g = Neo4jGraph.open(conf)

所以我想知道 Gremlin 使用的是什么版本的数据存储,因为我如何制作数据库似乎并不重要,我会收到如上所示的错误。我相信我的 Neo4j 版本创建了一个数据存储区 v0.A.8,我唯一没有尝试过但可能有效的方法是降级我的 Neo4j 版本。提前感谢任何 Ideas/feedback!

*编辑:给出了错误的 neo4j-java-驱动程序版本号,添加了 neo4j 版本

tldr; Apache TinkerPop 3.2.5 经过测试可与 Neo4j 2.3.3 一起使用。

值得注意的是,鉴于 Neo4j 的 GPL 许可与 Apache 许可冲突,Apache TinkerPop 对 Neo4j 没有直接或默认的依赖性。因此,在确定要处理的版本时涉及到一些间接性。从技术上讲,TinkerPop 让用户通过选择 neo4j-tinkerpop-api-impl 的版本来选择要使用的 Neo4j 版本:

https://github.com/neo4j-contrib/neo4j-tinkerpop-api-impl

neo4j-tinkerpop-api

的版本兼容

https://github.com/neo4j-contrib/neo4j-tinkerpop-api

与您正在使用的 TinkerPop 版本一起使用。对于 3.2.5,那将是:

https://github.com/apache/tinkerpop/blob/3.2.5/neo4j-gremlin/pom.xml#L41

虽然您在技术上可以自由选择 neo4j-tinkerpop-api-impl 的版本,但值得注意的是 TinkerPop 3.2.5 仅针对连接到 Neo4j 2.3.3 的 0.3-2.3.3 进行了测试:

https://github.com/neo4j-contrib/neo4j-tinkerpop-api-impl/blob/0.3-2.3.3/pom.xml#L23