
graphaware/neo4j-config-clineo4j-config-cli是一个Neo4j实用工具,用于基于JSON配置文件定义确保Neo4j数据库的期望配置状态。它能够自动化执行数据库创建、删除、角色管理等操作,特别适用于部署流程中确保数据库环境的一致性。
Database(数据库管理)和Role(角色管理)dropIfExists参数)以下是使用docker-compose部署Neo4j与neo4j-config-cli的示例配置:
yamlversion: '3.7' services: neo4j: image: neo4j:4.4.11-enterprise ports: - "7474:7474" - "7687:7687" environment: - NEO4J_ACCEPT_LICENSE_AGREEMENT=yes - NEO4J_AUTH=neo4j/${NEO4J_PASSWORD:-password} neo4j-config-cli: image: graphaware/neo4j-config-cli:1.2.0 environment: - NEO4J_USER=neo4j - NEO4J_PASSWORD=password - NEO4J_URI=bolt://neo4j:7687 - IMPORT_PATH=/config volumes: - "./config:/config"
| 环境变量 | 描述 |
|---|---|
| NEO4J_USER | Neo4j数据库用户名 |
| NEO4J_PASSWORD | Neo4j数据库密码 |
| NEO4J_URI | Neo4j数据库连接URI(如bolt://neo4j:7687) |
| IMPORT_PATH | 配置文件路径,支持本地目录(如/config)或远程URL(如GitHub Gist链接) |
| seed-only | 是否仅执行种子数据导入(true/false),用于现有数据库 |
| seed-url | 种子数据文件URL,与seed-only=true配合使用 |
用于管理数据库的创建、删除、索引和约束等。
结构示例:
json{ "kind": "Database", "name": "movies", "dropIfExists": true, "skipCreate": false, "indexes": { "fulltext" : [ { "labels": ["Person"], "properties": ["name"], "name": "Person" } ] }, "constraints": { "unique": [ { "label": "Movie", "property": "title", "type": "UNIQUE" } ] }, "seeds": ["movies.cypher"] }
字段说明:
kind: 配置类型,固定为"Database"name: 数据库名称dropIfExists: 是否在数据库存在时删除(true/false)skipCreate: 是否跳过数据库创建(true/false,适用于Neo4j Aura)indexes: 索引配置,支持fulltext等类型constraints: 约束配置,支持unique等类型seeds: 种子数据文件列表(Cypher文件路径)用于管理Neo4j角色和权限。
结构示例:
json{ "kind": "Role", "name": "ut1", "dropIfExists": true, "privileges": [ { "graph": "*", "access": true, "rules": [ { "target": "node", "labels": "*", "action": "match", "resource": "all_properties", "access": "GRANTED" }, { "target": "node", "labels": "Person", "action": "read", "resource": "born", "access": "DENIED" } ] } ] }
字段说明:
kind: 配置类型,固定为"Role"name: 角色名称dropIfExists: 是否在角色存在时删除(true/false)privileges: 权限配置列表
graph: 应用权限的图(*表示所有图)access: 是否允许访问(true/false)rules: 具体权限规则
target: 目标类型(node/relationship)labels: 标签(*表示所有标签)action: 操作类型(match/read等)resource: 资源(all_properties/具体属性名)access: 权限类型(GRANTED/DENIED)config/simple-db-create.json:json{ "kind": "Database", "name": "movies", "dropIfExists": true }
docker-compose.yml配置启动服务:shelldocker-compose up
执行后,neo4j-config-cli会等待Neo4j启动,然后删除并重新创建movies数据库,操作完成后容器自动退出。
在Neo4j Aura环境中不支持CREATE DATABASE命令,需设置skipCreate: true:
json{ "kind": "Database", "name": "neo4j", "skipCreate": true }
支持通过URL指定远程配置文件(如GitHub Gist):
yamlversion: '3.7' services: neo4j-config-cli: image: graphaware/neo4j-config-cli:1.2.0 environment: - NEO4J_PASSWORD=password - NEO4J_URI=bolt://neo4j:7687 - IMPORT_PATH=[***]
使用seed-only参数仅向现有数据库导入种子数据:
shelldocker run --rm -it \ -e NEO4J_URI=neo4j+s://***d85.databases.neo4j.io \ -e NEO4J_PASSWORD=tT3h3ieK4sw-MATaEaimFFHY9YqkgYNo9WNYcEBqMZ4 \ -e seed-only=true \ -e seed-url=[***] \ graphaware/neo4j-config-cli:1.3.0
请参考本仓库中附带的LICENSE.txt文件。
本仓库基于"尽力而为"原则提供支持。



manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务