Neo4j Cypher LiquiGraph - 使迁移脚本具有幂等性

时间:2018-01-08 16:08:23

标签: neo4j cypher liquigraph

我创建了以下LiquiGraph迁移脚本:

<?xml version="1.0" encoding="UTF-8"?>
<changelog xmlns="http://www.liquigraph.org/schema/1.0/liquigraph.xsd">

    <changeset id="initial_indexes_and_constraints" author="alex">
        <query>CREATE INDEX ON :Action(entityId)</query>
        <query>CREATE CONSTRAINT ON ( action:Action ) ASSERT action.id IS UNIQUE</query>
    </changeset>
</changelog>

正如您所看到的那样 - 我在那里添加了两行 - 用于创建INDEXCONSTRAINT

我想让它成为幂等的 - 这样我想检查索引或约束是否存在,然后才创建它们。

是否可以在LiquiGraph迁移脚本中添加此类验证?如果是,请举个例子。

1 个答案:

答案 0 :(得分:2)

通常,不需要按索引或约束检查,因为当它们已经存在时不执行任何操作。

例如:运行以下命令一次(使用Neo4j浏览器):

Added 1 constraint, completed after 285 ms.

将产生此输出:

(no changes, no records)

再次运行相同的命令将产生以下输出:

data(pistonrings)
attach(pistonrings)
diameter <- qcc.groups(diameter, sample)

    qcc(diameter[1:25,], type="xbar")
    qcc(diameter[1:25,], type="xbar", newdata=diameter[26:40,])
    q <- qcc(diameter[1:25,], type="xbar", newdata=diameter[26:40,], plot=FALSE)
    plot(q, chart.all=FALSE)