添加新的 Table 列时,我在 Liquibase 脚本中找不到 IF_NOT_EXIST 的任何属性
While adding a new Table column I cannot find any attribute of IF_NOT_EXIST in the Liquibase Script
<changeSet author="John" id="addColumn-example">
<addColumn TableName="person" >
<column name="address"type="varchar(255)"/>
</addColumn>
</changeSet>
我找不到上述更改集标签的任何属性或其他内容,这些标签的工作方式与以下预期查询
ALTER TABLE PERSON
ADD COLUMN IF NOT EXISTS ADDRESS VARCHAR(255);
Liquibase 文档中没有 IF NOT EXISTS
属性。它只显示 add column
,谁能建议怎么做?
我不完全确定这是否是您要查找的内容,但我建议您将先决条件添加到您的变更集中。
如果不满足前提条件的要求,这将阻止执行变更集。看看 documentation.
因此之后您的变更集将如下所示:
<changeSet author="John" id="addColumn-example">
<preConditions onFail="MARK_RAN" onFailMessage="Column address already exists!">
<not>
<columnExists tableName="person" columnName="address"/>
</not>
</preConditions>
<addColumn tableName="person">
<column name="address" type="varchar(255)"/>
</addColumn>
</changeSet>
值得注意的是用 标签取反。这是必需的,因为我们要检查特定列是否 not 是否已经存在。当然你可以选择最适合你的precondition onFail策略。
<changeSet author="John" id="addColumn-example">
<addColumn TableName="person" >
<column name="address"type="varchar(255)"/>
</addColumn>
</changeSet>
我找不到上述更改集标签的任何属性或其他内容,这些标签的工作方式与以下预期查询
ALTER TABLE PERSON
ADD COLUMN IF NOT EXISTS ADDRESS VARCHAR(255);
Liquibase 文档中没有 IF NOT EXISTS
属性。它只显示 add column
,谁能建议怎么做?
我不完全确定这是否是您要查找的内容,但我建议您将先决条件添加到您的变更集中。 如果不满足前提条件的要求,这将阻止执行变更集。看看 documentation.
因此之后您的变更集将如下所示:
<changeSet author="John" id="addColumn-example">
<preConditions onFail="MARK_RAN" onFailMessage="Column address already exists!">
<not>
<columnExists tableName="person" columnName="address"/>
</not>
</preConditions>
<addColumn tableName="person">
<column name="address" type="varchar(255)"/>
</addColumn>
</changeSet>
值得注意的是用