2017-11-17 3 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 명령을 사용하는, 실행을 liquibase SQL을 생성합니다 updateSQL 명령을 사용해보십시오. 이를 수동으로 수행하는 것과 비교하고 차이점을 알 수 있는지 확인하십시오.