2017-11-17 8 views
3

LinuxマシンMYSQL上でLiquibase xmlの助けを借りてデータベースのカラム名を更新しようとしています。エラーカラム名をLiquibase xmlで更新中

更新列のための私のXMLコードは

<renameColumn tableName="AAA" oldColumnName="bbb_id" newColumnName="ccc_id" columnDataType="bigint" /> 

ですが、この行は私が

<sql>ALTER TABLE `AAA` CHANGE COLUMN `bbb_id` `ccc_id` BIGINT(20); 
    <comment>find onther why, beacuse rename query throw error</comment> 
</sql> 

また怒鳴る単純なSQLクエリを使用して試してみましたが、このエラーを取得した後ERROR [2017-11-16 15:42:28,247] liquibase: migrations.xml: migrations.xml::3.15.1::maulik.kakadiya: Change Set migrations.xml::3.15.1::maulik.kakadiya failed. Error: Error on rename of './MY_DB/#sql-4bf_322' to './MY_DB/AAA' (errno: 150) [Failed SQL: ALTER TABLE MY_DB.AAA CHANGE bbb_id ccc_id BIGINT]

のようなスローエラーです"bbb_id"は外部キー参照です。

しかし、この文は同じエラーが発生しています。

しかし、私はその後、このSQLクエリが正常に実行さ

ALTER TABLE `AAA` CHANGE COLUMN `bbb_id` `ccc_id` BIGINT(20); 

怒鳴るクエリごとにこの文の単純なSQLクエリを実行しているが、私は同じoprationためLiquiBaseをXMLのにしようとした場合、このコードはエラーを投げていますか。

この種の問題はありますか?

答えて

0

私はliquibase updateコマンドを使用する代わりに、トラブルシューティングの手順を提案することができます。updateSQLコマンドを試してください。これにより、liquibaseが実行されるSQLが生成されます。それを手動で行っていることと比較して、違いが何であるかを知ることができるかどうかを確認してください。

関連する問題