2017-01-20 5 views
0

나는 작은 프로젝트를 Spring에서 작성했다. 데이터베이스 마이그레이션 및 씨앗의 경우 liquibase를 사용합니다.다운 그레이드 데이터베이스 (liquibase 포함) - 스프링

잠시 후 데이터베이스를 이전 버전으로 다운 그레이드하도록 요청했습니다. 이것은 liquibase와 관련이 있으며 어떤 워크 플로우를 추천합니까? 새 war 파일을 패키징하고 순수한 SQL 스크립트를 실행하면됩니다.하지만 그것은 나에게 좋은 방법은 아닙니다. 난 그냥 liquibase로 할거야 - 어쩌면 이전 버전으로 롤백.

미리 감사드립니다.

답변

0

Liquibase는 이미 존재하는 업데이트를 (자동으로) 롤백 할 수 없습니다. 당신이 할 수있는 일은 - 추가적인 changesets를 작성하는 것인데, DB에서 필요한 변경을 수동으로 기술 할 것입니다. 그러면 구조가 필요한 상태로 돌아갑니다.

이 과정을보다 잘하기 위해 rollback actions을 미리 설명 할 수도 있습니다. 각 변경 집합에서 rollback 섹션을 통해 수행 할 수 있습니다.

0

db 롤백은 일반적으로 가능하지 않은 것을 기억하십시오. 예를 들어, v1에서는 열 A 개의 데이터가 있습니다 (토론을보다 쉽게하기 위해 : null이 아니고 기본값없이). v2에서는 A 열을 삭제합니다. 자동으로 롤백/다운 그레이드를 수행하려면 어떻게합니까?

DB를 상태 v3으로 마이그레이션하는 또 다른 마이그레이션을 추가하는 것이 좋습니다.이 마이그레이션은 v1과 매우 비슷하거나 비슷합니다. 이 마이 그 레이션에서 누락 된 데이터 등을 모두 처리 할 수 ​​있습니다.