스키마 변경만으로 태그를 사용하여 롤백 할 수 있었지만 저장 프로 시저에서 혼합 할 때 작동하지 않는 시나리오가 발생했습니다.
Oracle 데이터베이스에 대해 SQL 변경 로그를 사용하고 있습니다.태그가 runOnChange 변경 집합에 적용된 경우 태그에 롤백이 작동하지 않습니다.
릴리스 1.0.0
나는 테이블을 생성 포함하는 스크립트 R-1.0.0.sql 있고, 저장 프로 시저를 생성하는 스크립트 proc.sql : 여기에 시나리오입니다. proc 변경 집합은 runOnChange = true로 태그가 지정됩니다.
내가 변화와 행복, 그리고 DATABASECHANGELOG의 표는 내가 결국 태그 1.0.0
으로 데이터베이스 태그 :
1 - R-1.0.0.sql-EXECUTED
2 - proc.sql- EXECUTED- (태그) 1.0.0
릴리스 2.0.0
나는 열 이름을 변경 스크립트 R-2.0.0을 가지고 있고, 또한, 새로운 열 이름으로 proc.sql을 업데이트했습니다. 이를 실행 한 후, DATABASECHANGELOG은 :
1 - R-1.0.0.sql-EXECUTED
4 - proc.sql-RERAN- (태그) 1.0.0
3 - - R-2.0.0.sql EXECUTED
당신은 다시 만났 시저 스크립트는 새 번호를 가지고 있음을 알 수 있지만, 나는 1.0.0에 태그를 롤백하려면 지금 경우 여전히 1.0.0 태그
를 유지, 롤백 명령은 아무것도하지 않는 태그 때문에 1.0.0은 로그의 최신 변경 사항에 해당합니다.
이것은 의도적으로 설계된 것 같습니다. 이 작업을 수행하기 위해 변경 사항을 구성하는 다른 방법이 있습니까?
이 스레드에 따르면 저장 프로 시저에 대해 다른 변경 로그 테이블을 지정할 수 있어야합니다. http://forum.liquibase.org/topic/configurable-databasechangelog-table-name. 나는 아직도 커맨드 라인을 알아 내려고 노력 중이다. –