【问题标题】:How to upgrade from Neo4J 2.0.4 to 3.3.3?如何从 Neo4J 2.0.4 升级到 3.3.3?
【发布时间】:2018-02-20 01:23:25
【问题描述】:

我正在尝试从 Neo4J 2.0.4 升级到 3.3.3,并按照单实例升级页面上列出的所有程序进行操作: http://neo4j.com/docs/operations-manual/3.3/upgrade/deployment-upgrading/

我使用2.x-config-migrator.jar 实用程序导入了所有配置,然后运行neo4j-admin import 将数据库从2.0.4 导入到3.3.3,这似乎奏效了。

但是,当我尝试使用新数据库启动 neo4j 时(运行 neo4j console 以查看错误,因为正常的 neo4j start 不起作用)我在此之后看到以下错误消息:

2018-02-18 22:59:53.328+0000 INFO Starting upgrade of database

2018-02-18 22:59:53.335+0000 ERROR Failed to start Neo4j: Starting Neo4j failed: Component 'org.neo4j.server.database.LifecycleManagingDatabase@4ae9cfc1' was successfully initialized, but failed to start. Please see the attached cause exception "Not possible to upgrade a store with version 'v0.A.1' to current store versionv0.A.8(Neo4j 3.3.3).

我尝试研究这个问题,但绝对没有任何信息。支持从 2.0.x(latest) 到 3.3.2 的升级路径,所以我想 3.3.3 也是一样的,因为它只是一个小升级。

当我从data 文件夹中删除导入的数据库graph.db 并尝试在新安装的数据库上运行neo4j console 时,我也收到此错误:

2018-02-18 23:09:31.440+0000 ERROR The ResourceConfig instance does not contain any root resource classes. 2018-02-18 23:09:31.440+0000 WARN unavailable The ResourceConfig instance does not contain any root resource classes.

但是,当我通过 Neo4J Desktop 安装干净的数据库时,它运行良好。

我使用的是 Mac OS X 10.12.6 和 Java 1.8。

我该如何解决这个问题?

【问题讨论】:

  • 您可能想先升级到最新的 2.3 版本(我认为是 2.3.12),然后在成功升级后升级到 3.3.3。
  • 是的,但是升级说支持路径 2.0.x。另外要升级到 2.3.x,我必须经过几个步骤,而且我真的不知道他们在获取数据结构的过程中做了什么以确保它受到支持......我不知道为什么没有人从Neo4J 可以回答这个问题。这是任何用户都可能遇到的问题......
  • 鉴于您遇到的情况,我敢打赌实际上不支持 2.0.x。我会四处打听,看看这是否已知(并且需要更新文档),或者是要处理的错误。无论如何,从 2.3.x 线上的最新补丁升级更有可能奏效。记住 2.0.4 是在 2014 年发布的……我们真的没有看到很多人运行这么旧的版本。
  • @InverseFalcon 所以你不认为这是我的本地问题或任何与 Java 相关的问题?
  • @InverseFalcon 你是对的,它确实有效,但没有那么顺利。请参阅下面的答案。我会将其发布到 neo4j github 上的问题中。

标签: neo4j


【解决方案1】:

最后,我不得不自己回答这个问题,因为我花了几个小时整理出来。

首先,Neo4J 声称他们支持从最新的 2.x 版本到 3.x 的升级路径,但事实并非如此。我的版本是 2.0.4(这是最新的 2.0 版本,将设置和旧数据库迁移到新结构中时遇到了很多问题。它根本无法启动。

我必须先升级到 Neo4J 的最新稳定 2.x 版本,即 2.3.8。我遇到了一些设置问题(我在 2.0.4 中使用了身份验证,但我必须使用 2.3.x 提供的新内置身份验证模块,所以我不得不更改一些设置并删除身份验证插件)。您还需要将数据库存储从 2.0.x 升级到 2.3.x(通过取消注释 conf 中的设置)。

安装并检查 2.3.8 正在运行并且您的旧数据库正常工作后,您需要下载最新的 3.x 版本。

但是,设置迁移工具无法正常工作。它创建了许多新版本不支持的设置,因此您必须手动移动它们或根本不移动它们。此外,迁移工具不能在 Java 1.7 下运行,因此您可能必须安装 Java 1.8 才能启动迁移工具......所以不要使用它。

完成后,如果您已将数据库升级到最新的 2.x 版本,则可以运行 neo4j-admin 导入工具将该数据库导入新的 3.x 版本并进行转换。

这里详细描述整个过程:https://github.com/noduslabs/infranodus/wiki/Upgrading-Your-Neo4J-Database-from-2.x-to-3.x

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-04
    • 2020-09-13
    • 2012-08-29
    • 1970-01-01
    • 2012-10-31
    相关资源
    最近更新 更多