2012-12-14 1 views
2

문서 (http://flywaydb.org/getstarted/existingDatabaseSetup.html)가 명확하지 않아서 설명이 예제로 설명되기를 바랍니다.Flyway를 사용하여 다른 스키마 버전의 데이터베이스를 자동으로 마이그레이션

기존 버전의 테이블을 쿼리하여 스키마 버전이 암시 적이지만 결정적 인 프로덕션 데이터베이스의 두 가지 버전 (1과 2)이 있다고 가정 해 보겠습니다. 그런 다음 문서에 설명 된 내용을 어떻게 달성 할 수 있습니까? 내 예에서

두 버전의 스크립트를 첨부 모두 한 : 버전 1 : 버전 1과 2에 대한하지만 이후 스크립트를 일치 만들기 테이블 B

내가 만든 자바 마이그레이션 파일 : 테이블에게 버전 2를 만들기 이동 경로 메타 데이터가 누락되었습니다. 스크립트가 실행되었는지 여부를 데이터베이스에 쿼리해야하고이 경우 건너 뜁니다. Flyway가 초기화되지 않았기 때문에 응용 프로그램이 충돌하는 것이 문제입니다.

배치 할 때 자동으로 수행되도록하기 때문에 명령 줄에서 이동 경로를 초기화하고 싶지 않습니다 (포함 된 모드의 이동 경로). 내가 본 것에서 이것은 빈 데이터베이스에서만 작동합니다. 이 문제에 대한 간단한 해결책이 있습니까?

답변

1

단일 PROD 데이터베이스의 경우, 당신은 철새 이동 경로를 포장하고 테이블을 검사하고 flyway.initialVersion = 1 또는 이동 경로와 초기화 중 하나를 호출하여 수동으로 다시 귀하의 경우에는

flyway.initOnMigrate

당신이했을 사용할 수 있습니다. initialVersion = 2, migrate에 대한 호출이 뒤 따른다.

+0

고마워요! 충분히 맑은 것 같습니다. 실제 마이그레이션 클래스에서 검사를 수행 할 수 있으며 이미 실행 된 경우 업그레이드 스크립트를 건너 뛰는 것이 맞습니까? – Alix

관련 문제