使用Neo4j docker镜像切换活动数据库

时间:2018-04-16 15:00:11

标签: docker neo4j cypher

我已使用导入工具将数据导入新的Neo4j数据库,而不是标准的graph.db。我想将此数据库切换到Web Neo4j。我使用了/ var / lib / neo4j卷的Neo4j docker镜像。但我找不到我的配置文件来更改活动数据库,即使在我专门挂载conf目录后,这个文件也没有生成。 如何在Web客户端或neo4j shell中切换活动的Neo4j数据库?

这是我创建neo4j容器的命令:

docker run --publish=7474:7474 --publish=7687:7687 --volume=/var/lib/neo4j/import:/var/lib/neo4j/import --env=NEO4J_dbms_allow_upgrade='true' --env=NEO4J_dbms.security.allow_csv_import_from_file_urls='true' neo4j:latest

1 个答案:

答案 0 :(得分:2)

您无法更改实时Neo4J实例的活动数据库。

企业版允许在不重新启动的情况下更改某些值;允许以这种方式更改的密钥列在the online documentation,但dbms.active_database不是其中之一。

相反,你有几个选择。

您可以安装/ conf目录

conf目录可以填充完全覆盖默认配置文件的配置文件。它们不是由Neo4J生成的,您必须将整个neo4j.conf文件放在目录中,然后将其安装到容器中。您可以在该文件中更改所需的任何值。

使用新文件更新映射目录后,您需要弹回图像(或者从图像中执行反射neo4j)。

您可以使用环境变量

设置活动数据库

与您在其他环境变量中传递的方式类似,您可以传入其他配置选项。如果您的新数据库名为newgraph.db,并且它与graph.db位于同一目录中,则只需传入--env=NEO4J_dbms_active__database=newgraph.db即可。如果它位于不同的目录中,请为该目录指定--env=NEO4J_dbms_directories_data=/path/to/new/data/dir

当这些作为环境变量传递时,更改它们需要启动一个新的Docker镜像。

您还可以构建自己的图片。

最后也许最激烈的选择是创建一个基于neo4j图像的自己的图像,并具有您需要的所有更改。通常情况下,这不是必需的,但是如果要清理对docker的调用而不是保留任何映射的配置目录,那么这就是要走的路。它还可以确保拥有自定义映像的任何人都无需额外配置;是否需要这取决于您和您的部署架构。