2014-02-27 5 views
2

생산 및 개발에서 다른 마이그레이션을 수행하는 방법을 찾고 있습니다.개발 및 생산의 이동 경로 마이그레이션

Maven을 사용하여 스프링 웹 애플리케이션을 만들고 싶습니다. 개발 중에 데이터베이스 스키마를 업데이트하고 테스트 데이터를로드하려고합니다. 새로운 버전의 응용 프로그램이 배포 될 때마다 스키마 만 변경하고 테스트 데이터는로드하지 않기를 원합니다.

첫 번째 아이디어는 스키마 업데이트를 저장하고 문을 다른 폴더에 삽입하는 것이 었습니다.

모든 신체가이 문제를 해결했으며 나를 도울 수 있다고 생각합니다. 대단히 감사합니다.

당신은 즉, 당신의 flyway.locations 속성에 마이그레이션에 대해 서로 다른 위치를 사용할 수 있습니다 :

답변

4

기본적으로 두 가지 옵션이 시험

flyway.locations=sql/structure,sql/test 

에 대한

생산을

flyway.locations=sql/structure 

그런 식으로 테스트 데이터를 sql/test fo에 포함 시키십시오. 알았어. 물론 번호 매기기에주의해야합니다.

두 번째 옵션 (내가 선호하는 방법)은 마이그레이션에 테스트 데이터를 전혀 포함시키지 않는 것입니다.

원하는 방식으로 테스트 데이터를 만들고이 데이터의 SQL 덤프를 만들면 마이그레이션과 별도로 유지됩니다.

이 방법은 빌드 프로세스의 일부로 각 마이그레이션을 적용하는 원시 테스트 데이터가 포함 된 별도의 데이터베이스 (인스턴스, 스키마 등)가있는 경우에 가장 적합합니다. 이 빌드 작업은 현재 마이그레이션과 항상 일치하는 덤프를 만들 수 있습니다.

테스트 컴퓨터를 준비 할 때 먼저 마이그레이션을 적용한 다음 일치하는 덤프의 내용을로드합니다.

이것은 특히 테스트 데이터가 다른 도구 (응용 프로그램)를 사용하여 준비 할 수 있고 handcoded하지 않기 때문에 첫 번째 버전보다 훨씬 더 깨끗하다고 ​​생각합니다.

관련 문제