首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Cypher脚本Neo4j 4.2坞不工作

Cypher脚本Neo4j 4.2坞不工作
EN

Stack Overflow用户
提问于 2021-05-26 12:46:40
回答 1查看 254关注 0票数 0

我试图引用文档的以下链接:https://neo4j.com/labs/apoc/4.2/operational/init-script/

这是我的对接命令:

代码语言:javascript
运行
复制
docker run --rm \
--env NEO4J_AUTH="neo4j/test" \
--env NEO4JLABS_PLUGINS='["apoc"]' \
--env NEO4J_apoc_export_file_enabled="true" \
--env NEO4J_apoc_import_file_enabled="true" \
--env NEO4J_apoc_import_file_use__neo4j__config="true" \
--env NEO4J_dbms_directories_import="/" \
--env NEO4J_apoc_initializer_neo4j_1='CALL apoc.cypher.runSchemaFile("file:////var/lib/neo4j/db_init_scripts/db_ddls.cypher");' \
--env NEO4J_apoc_initializer_neo4j_2='CALL apoc.cypher.runFile("file:////var/lib/neo4j/db_init_scripts/db_schema.cypher");' \
--name neo4j \
neo4j:cus

其中,新4j:cus是我的自定义映像,我将所需的密码文件复制到新4j:4.2映像中。

我的db_ddl.cypher有创建索引:

代码语言:javascript
运行
复制
CREATE CONSTRAINT idx_person_unq IF NOT EXISTS ON (p:Person) ASSERT p.name IS UNIQUE;

我的db_schema.cypher有模式创建:

代码语言:javascript
运行
复制
MERGE (p:Person {name: "Inital Person"});

当我试图启动容器时,我得到以下消息:

代码语言:javascript
运行
复制
Unrecognized setting. No declared setting with name: apoc.initializer.cypher.1
Unrecognized setting. No declared setting with name: apoc.initializer.cypher.2

当我尝试使用环境变量的旧版本时:

代码语言:javascript
运行
复制
--env NEO4J_apoc_initializer_cypher_1='CALL apoc.cypher.runSchemaFile("file:////var/lib/neo4j/db_init_scripts/db_schema.cypher");' \
--env NEO4J_apoc_initializer_cypher_2='CALL apoc.cypher.runFile("file:////var/lib/neo4j/db_init_scripts/db_ddls.cypher");' \

我明白了:

代码语言:javascript
运行
复制
Unrecognized setting. No declared setting with name: apoc.initializer.cypher.1
Unrecognized setting. No declared setting with name: apoc.initializer.cypher.2

但当我只运行一个密码时:

代码语言:javascript
运行
复制
--env NEO4J_apoc_initializer_cypher='CALL apoc.cypher.runSchemaFile("file:////var/lib/neo4j/db_init_scripts/db_ddls.cypher");' \

,那么它就能工作了。

以下是我的conf/ne4j.conf的样子:

代码语言:javascript
运行
复制
root@4f8955759b52:/var/lib/neo4j# grep apoc conf/neo4j.conf
#dbms.security.procedures.allowlist=apoc.coll.*,apoc.load.*,gds.*
apoc.initializer.neo4j.1=CALL apoc.cypher.runFile("file:////var/lib/neo4j/db_init_scripts/db_schema.cypher");
apoc.initializer.neo4j.0=CALL apoc.cypher.runSchemaFile("file:////var/lib/neo4j/db_init_scripts/db_ddls.cypher");
apoc.import.file.use_neo4j_config=true
apoc.import.file.enabled=true
apoc.export.file.enabled=true
dbms.security.procedures.unrestricted=apoc.*

有人能指出我缺少的东西吗?这样我就可以同时运行索引的创建和初始化一些模式了吗?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2021-05-26 18:56:36

只有在创建单独的apoc.conf文件并将其放在neo4j.conf旁边时,此行为才能工作。

我的apoc.conf现在看起来是这样的:

代码语言:javascript
运行
复制
apoc.initializer.neo4j.1=CALL apoc.cypher.runSchemaFile("file:////var/lib/neo4j/db_init_scripts/db_ddls.cypher")
apoc.initializer.neo4j.2=CALL apoc.cypher.runFile("file:////var/lib/neo4j/db_init_scripts/db_schema.cypher");

日志文件具有输出:

代码语言:javascript
运行
复制
2021-05-26 18:51:06.068+0000 INFO  [neo4j/c0fb7489] successfully initialized: CALL apoc.cypher.runSchemaFile("file:////var/lib/neo4j/db_init_scripts/db_ddls.cypher")
2021-05-26 18:51:06.882+0000 INFO  Remote interface available at http://localhost:7474/
2021-05-26 18:51:06.892+0000 INFO  Started.
2021-05-26 18:51:08.091+0000 INFO  [neo4j/c0fb7489] successfully initialized: CALL apoc.cypher.runFile("file:////var/lib/neo4j/db_init_scripts/db_schema.cypher");
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67705203

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档