在nodejs(express)中为neo4j放置创建约束语句的位置?

时间:2016-06-06 15:26:14

标签: node.js neo4j constraints

我试图了解如何使用neo4j作为db来组织我的节点api代码。我正在使用neo4j-javascript-driver

我正在尝试在某些用户字段上创建约束。但我不知道在哪里放置代码。因为这些创建约束语句应该只运行一次。我想过在neo4j UI上手动运行语句,你可以运行语句,但如果我去生产,我可能不想再次运行语句。

我的代码:

session
        .run("CREATE CONSTRAINT ON (user:USER) ASSERT user.email IS UNIQUE")
        .then((result) => {
            console.log("neo4j constraints successful");
            neoSession.close();
        })
        .catch((error) => {
            console.log("constraint.js error : ",error);
        });

1 个答案:

答案 0 :(得分:3)

您可以考虑在部署过程中运行这些约束查询。你是如何部署Neo4j的?如果您以某种自动方式(例如Ansible或Docker)执行此操作,则可以使用包含所有这些Cypher约束查询的Cypher脚本文件,并在使用neo4j-shell成功启动Neo4j后运行此脚本。

或者,您可以在每次启动应用程序时简单地运行这些语句。如果约束已经存在,则再次运行语句实际上没有任何损害。