0

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

foobar_table
    foo
    bar
    baz

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

foobar_table
    foo
    bar

baz_table
    baz

我怎样才能用Liquibase做到这一点?

PS 通过Grails 数据库迁移插件使用 Liquibase 。grailsChange标签给了我希望,但缺乏示例文档让我很想。

更新:

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

4

1 回答 1

3

正如您已经发现的那样,您可以运行任意 SQL 查询作为变更集的一部分。我在我的博客文章中回顾了常见的警告。

所以对于你的例子:

<changeset>
  <createTable tableName="baz_table"/>
  <sql>insert into baz_table(baz) select baz from foobar</sql>
  <dropColumn tableName="foobar_table" columName="baz"/>
</changeset>
于 2012-10-07T19:22:19.930 回答