1

次を使用して、いくつかの列のデータ型を 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 ) で、削除する必要がある PK と FK に関連する 2011 年の既知の問題があることに気付きました。キーを削除して再作成することは、私にとって実際にはオプションではありません。

私が得たエラーは次のとおりです。

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' に依存しています

誰かがこれを回避したかどうか疑問に思っていましたか?前もって感謝します

4

1 に答える 1

1

残念ながら、PK 制約を削除しない限り、現在これを行う方法はありません。おっしゃっているバグは、liquibase のバージョン 3 で修正される予定のようですが、このバージョンのリリース日はありません。

ごめん!

Liquibase はオープン ソースであるため、いつでも自分でバグを修正できます。:)

于 2013-04-24T13:38:37.790 に答える