2012-09-27 74 views
0

我有一個包含數據的現有表。使用Liquibase將列拆分爲MySQL表

foobar_table 
    foo 
    bar 
    baz 

我想給baz列了foobar_table表拆分並創建一個名爲baz_table新表包含它。操作完成後,我會與包含它的操作之前有數據的每一列下面的結構開始:

foobar_table 
    foo 
    bar 

baz_table 
    baz 

我怎樣才能做到這一點與Liquibase

P.S.通過Grails Database Migration plugin使用Liquibase。 grailsChange標籤給了我希望,但缺乏示例文檔讓我想要。

更新:

我不知道,可以在變更集使用的sql的。我在here的例子中發現了它,我認爲這是我需要的。

回答

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>