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

标签 database scala neo4j gremlin tinkerpop

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

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

我使用 neo4j-java-driver 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 版本。预先感谢您的任何想法/反馈!

*编辑:给出了neo4j-java-driver的错误版本号,添加了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 Hook 的 0.3-2.3.3 进行了测试.3:

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

关于database - 从控制台创建 Neo4j 数据库时,Gremlin 创建什么版本的数据存储?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45717393/

相关文章:

java - Oracle Coherence 后写缓存和手动数据库更新

mysql - 使用 UNION 和 DISTINCT 优化 MySQL 选择查询

database - 高流量站点的 Scala 最佳 Web 数据库解决方案?

scala - Spark MLlib 矩阵乘法

count - 如何通过密码查询在neo4j中获取不同的标签及其计数?

ruby-on-rails - rails : sum all column elements where param1 == some value

android - Android SQLite 数据库中的 "In place"更新不适用于 rawQuery

neo4j - 如何检查neo4j cypher中是否存在索引

scala - 有没有办法在 Scala 中模拟 Singleton 对象

java - 无法导出 Cypher 查询