【问题标题】:Split columns out of MySQL table using Liquibase使用 Liquibase 从 MySQL 表中拆分列
【发布时间】:2012-09-27 15:19:26
【问题描述】:

我有一个包含数据的现有表。

foobar_table
    foo
    bar
    baz

我想将baz 列从foobar_table 表中拆分出来,并创建一个名为baz_table 的新表来包含它。操作完成后,我将具有以下结构,每列包含操作开始之前的数据:

foobar_table
    foo
    bar

baz_table
    baz

如何使用Liquibase 做到这一点?

附:通过Grails Database Migration plugin 使用 Liquibase。 grailsChange 标签给了我希望,但缺乏示例文档让我很想。

更新:

我不知道可以在变更集中使用的sql。我在示例here 中发现了它,我认为这是我所需要的。

【问题讨论】:

    标签: mysql grails data-migration liquibase


    【解决方案1】:

    正如您已经发现的那样,您可以运行任意 SQL 查询作为变更集的一部分。我在blog post 中讨论了常见的警告。

    所以对于你的例子:

    <changeset>
      <createTable tableName="baz_table"/>
      <sql>insert into baz_table(baz) select baz from foobar</sql>
      <dropColumn tableName="foobar_table" columName="baz"/>
    </changeset>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-10-19
      • 1970-01-01
      • 2014-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-20
      相关资源
      最近更新 更多