针对SQL Server的Liquibase中的modifyDataType

时间:2013-04-24 13:24:32

标签: liquibase

我正在尝试使用以下方法修改从int到bigint的多个列的数据类型:

<modifyDataType tableName="ACCESS_HISTORY" columnName="ID" newDataType="${LongType}"/>

我将LongType定义为:

<property name="LongType" value="bigint" dbms="mssql"/>

我在Liquibase JIRA(https://liquibase.jira.com/browse/CORE-1062)中注意到,2011年有一个与PK和FK有关的已知问题需要删除。删除和重新创建密钥对我来说不是一个选择。

我得到的错误是:

liquibase.exception.MigrationFailedExc
eption: Migration failed for change set ChangeColumnTypes.xml::4-4-060
-2::thof:
     Reason: liquibase.exception.DatabaseException: Error executing SQL ALTER TA
BLE [dbo].[ACCESS_HISTORY] ALTER COLUMN [ID] BIGINT: The object 'PK_Access_Histo
ry' is dependent on column 'ID'.:
          Caused By: Error executing SQL ALTER TABLE [dbo].[ACCESS_HISTORY] ALTE

R COLUMN [ID] BIGINT:对象'PK_Access_History'依赖于列'ID'

我想知道是否有人有这个?提前致谢

1 个答案:

答案 0 :(得分:1)

我害怕说除非你放弃PK约束,否则目前无法做到这一点。看起来你正在讨论的bug虽然计划在liquibase的第3版中修复,但是这个版本没有发布日期。

抱歉!

由于Liquibase是开源的,你可以自己修复bug。 :)