如何将 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 版本的实例,但不要启动它。
-
管理该实例(从右上角的
…
按钮),并按打开终端
按钮打开一个指向该实例主目录的终端窗口。 -
在终端中执行
cd data/database
(如果您随后执行ls
,则目录应该为空)。 -
将 GrapheneDB zip 文件解压缩到此目录,确保结果为包含
neostore*
文件的graph.db
文件夹。如果需要,将顶级目录重命名为graph.db
以与默认图名称对齐(或相应地调整配置文件中的图名称)。 -
检查解压缩目录的拥有权权限。它们应该与您在 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 实例的次要版本匹配),您将在其中导入数据库。
-
管理该实例(从右上角的
…
按钮),并按打开终端
按钮打开一个指向该实例主目录的终端窗口。 -
在终端中执行
cd data/databases
。这里可能还有其他目录,对应于该实例上的其他数据库。 -
将 GrapheneDB zip 文件解压缩到此目录。扩展后的 zip 的顶级目录应该有一个唯一的名称,该名称符合 Neo4j 的命名规则:https://neo4j.ac.cn/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>
替换为数据库名称。这将在系统 db 中为新数据库创建一个条目,该条目将使用从步骤 4 和 7 中解压缩的数据库和事务文件。 -
您可以使用
SHOW DATABASES
检查数据库是否已创建。 -
执行
:use <dbname>
(替换为数据库名称)切换到该 db。
此页面对您有帮助吗?