【发布时间】:2016-09-26 08:45:14
【问题描述】:
我正在使用 Liquibase 进行数据迁移。
我有一个名为 Document 的表,其中已经包含值。
我的表格文档包含列(id、name、dueDate)。 DueDate 列的类型是 Date,我想将他的类型从 DATE 更改为 DATETIME。
我采用了以下策略
1- 创建一个 DATETIME 类型的新列 duedatenew
2- 将值从列到期日期复制到到期日期新
3- 删除列到期日期
4- 将duedatenew 列重命名为duedate
如以下变更集所述
<changeSet id="task-99" author="blaise">
<addColumn tableName="document">
<column name="duedatenew" type="DATETIME" />
</addColumn>
<update tableName="document">
<column name="duedatenew" valueComputed="(SELECT duedate FROM document)" />
</update>
<dropColumn tableName="document" columnName="duedate" />
<renameColumn tableName="document" oldColumnName="duedatenew"
newColumnName="duedate" />
</changeSet>
但是在第二步中变更集的执行总是失败。数据复制总是失败。
请问我该如何解决?
【问题讨论】:
标签: java date datetime database-migration liquibase