如何将 GrapheneDB 数据库导入 Neo4j Desktop
此假设您已经拥有 GrapheneDB 数据库的 zip 文件。
此处的目标是将其作为完整数据库导入,而不是将数据提取到已有数据库中。
请注意,GrapheneDB 网站上已经有导出说明,链接如下: https://docs.graphenedb.com/docs/importing-and-exporting-databases#loading-an-exported-datastore-into-a-local-neo4j-instance
请先尝试使用上述方法;如果无效,请根据 GrapheneDB 数据库的 Neo4j 版本按以下步骤操作。
在 Neo4j 3.5.x 中
在此版本中,每个 DBMS 仅有一个数据库,因此步骤更简单。
-
在 Neo4j Desktop 中,创建对应 3.5.x 版本的实例,但不要立即启动。
-
管理该实例(通过右上角的
…),并点击Open Terminal按钮打开指向实例主目录的终端窗口。 -
在终端中执行
cd data/database(随后若执行ls,该目录应为空)。 -
将 GrapheneDB zip 文件解压到该目录,确保得到一个包含
neostore*文件的graph.db文件夹。如有必要,请将顶层目录重命名为graph.db,以匹配默认图名称(或相应地在配置文件中调整图名称)。 -
检查解压后目录的所有权和权限。它们应与在数据库主目录执行
ls -l时看到的所有权匹配。如果不匹配,可能需要递归更改文件所有权,以便 Neo4j Desktop 能读取和写入它们: https://linuxize.com/post/linux-chown-command/ -
启动数据库。
在 Neo4j 4.x 中
Neo4j 4.x 支持每个 DBMS 实例拥有多个数据库。因此我们可以添加 GrapheneDB 数据库,而无需替换其他数据库。
我们甚至可以向已有数据库的现有 DBMS 实例中添加,且该实例可能已经在运行。
您应该拥有已压缩的数据库文件,且可能还有一个 transactions zip 包。
-
在 Neo4j Desktop 中,创建相应版本的新 DBMS 实例,或者找到一个已有的数据库(其次版本号与 GrapheneDB 实例相匹配),在其中导入数据库。
-
管理该实例(通过右上角的
…),并点击Open Terminal按钮打开指向实例主目录的终端窗口。 -
在终端中执行
cd data/databases。此处可能还有其他目录,对应实例上的其他数据库。 -
将 GrapheneDB zip 文件解压到该目录。展开后的 zip 顶层目录应拥有符合 Neo4j 命名规则的唯一名称: /docs/cypher-manual/current/syntax/naming/
-
检查解压后目录的所有权和权限。它们应与在 DBMS 主目录执行
ls -l时看到的所有权匹配。如果不匹配,可能需要递归更改文件所有权,以便 Neo4j Desktop 能读取和写入它们: https://linuxize.com/post/linux-chown-command/ -
(仅当您包含了 transactions zip 时)在终端回到 Neo4j 实例的主目录并执行
cd data/transactions。这里存放每个数据库的事务文件,您应看到每个数据库对应的目录。 -
将 transactions zip 文件解压到该目录。展开后的 zip 顶层目录名称应与步骤 4 中解压的数据库目录名称相匹配。
-
检查解压后目录的所有权和权限。它们应与在 DBMS 主目录执行
ls -l时看到的所有权匹配。如果不匹配,可能需要递归更改文件所有权,以便 Neo4j Desktop 能读取和写入它们: https://linuxize.com/post/linux-chown-command/ -
如果 Neo4j DBMS 尚未启动,请启动它。
-
启动并登录后,执行
:use system切换到系统数据库,以便执行数据库管理命令。 -
使用步骤 4 与步骤 7 中的目录名称作为数据库名称,执行
CREATE DATABASE <dbname>(将<dbname>替换为实际的数据库名)。这将在系统库中创建相应的条目,并使用步骤 4 与步骤 7 中解压的数据库和事务文件。 -
可使用
SHOW DATABASES检查数据库是否已创建。 -
执行
:use <dbname>(将<dbname>替换为数据库名)切换到该数据库。
此页面有帮助吗?