我试图修改数据类型的一些列从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年有一个已知的与PKs和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'
我想知道是否有人绕过了这个?提前感谢
恐怕目前没有办法做到这一点,除非您放弃PK约束。你说的这个bug应该会在liquidbase的第三版中修复,但是这个版本还没有发布日期。
对不起!
由于Liquibase是开源的,您可以随时自己修复错误。:)