【问题标题】:liquibase: can you specify "after column" with liquibase addColumn?liquibase:你能用 liquibase addColumn 指定“列后”吗?
【发布时间】:2014-02-06 10:21:57
【问题描述】:

有没有办法编写一个 liquibase addColumn 变更集,以便它生成类似 sql

ALTER TABLE xxx ADD COLUMN yyy AFTER zzz;

我的意思是,有没有办法在 liquibase 行话中添加相当于“列后 zzz”的内容?

【问题讨论】:

标签: mysql database-migration liquibase changeset


【解决方案1】:

在 Liquibase 3.1 中,列标签上有新的“afterColumn”、“beforeColumn”和“position”属性。

http://www.liquibase.org/documentation/column.html 的文档刚刚更新以包含它们。

【讨论】:

【解决方案2】:

this 修复之前,您可以使用modifySql

<changeSet id="1-1" author="david">
    <comment>Add column field to example table</comment>
    <addColumn tableName="example">
        <column name="name" type="VARCHAR(50)" defaultValue="">
            <constraints nullable="false"/>
        </column>
    </addColumn>

    <!-- Use modifySql so we can insert it in the desired position -->
    <modifySql>
        <append value=" AFTER some_column"/>
    </modifySql>
</changeSet>

【讨论】:

  • BTW append 当字段具有唯一约束时在 H2 上失败(因为在这种情况下将生成 2 个 ALTER TABLE 命令)。
猜你喜欢
  • 1970-01-01
  • 2020-03-08
  • 1970-01-01
  • 2017-05-15
  • 1970-01-01
  • 2017-09-29
  • 2021-02-04
  • 2020-06-21
  • 2017-04-02
相关资源
最近更新 更多