2012-10-03 3 views
4

많은 엔지니어가 병렬로 작업하여 더 큰 프로젝트가 Flyway으로 버전 관리를 처리하도록하는 좋은 방법을 알고 있습니까? 우리는 종종 마스터 병합 중에 2-3 개의 독립적 인 프로젝트가 db 변경을 필요로하기 때문에 충돌하는 병합을 발견하고 동일한 버전 번호를 사용했습니다.이동 경로 - 동시 버전/다중 분기 지원

이 시나리오에서는 마스터 링이 병합 될 순서를 알 필요가 없기 때문에 레일스 스타일의 타임 스탬프가 작동하는지 확신 할 수 없습니다.

병합하기 전에 마이 그 레이션 번호를 다시 지정하지 않아도이 문제를 해결할 수있는 좋은 방법이 있습니까?

답변

3

리 넘버링은 분명히 한 가지 방법입니다.

버전 번호 충돌을 피하는 또 다른 간단한 방법은 화이트 보드 또는 단순히 위키 페이지를 만드는 것입니다. 각 개발자는 작업을 시작할 때 버전 번호를 예약 할 수 있습니다.

또는 Flyway 1.8이 곧 출시 될 예정이며 마이그레이션에 선택적으로 순서가 맞지 않는 기능이 포함됩니다. 그러나 이것은 모든 시나리오에서 위험이 없습니다.

+0

감사합니다 - 나는 실제로-OUT의 생각 - 순서는 매우 안전하므로 좋은 해결책입니다. 두 사람이 대략 같은 시간에 스키마의 동일한 부분을 편집하는 경우 코드가 병합 충돌을 야기 할 가능성도 높기 때문에 엉망이 될 수 있습니다. –

+0

제 동료와 저는 모두 V5-xxx 마이그레이션을 작성한다고 가정 해 봅시다. 커밋하기 전에 변경 사항을 가져 오면 충돌이 발생합니다. 그렇다면 그의 버전을 V6으로 업데이트하는 것은 나에게 달린 것인가? Tom Lianza가 말했듯이 병합 충돌은 없습니다. 왜냐하면 내 데이터베이스가 변경 사항을 적용한 후에 충돌하는 경우 코드가 충돌 할 수 있기 때문입니다. 왜 이름을 바꿀 필요가 없도록 liquibase와 같은 버전 번호 뒤에 어떤 종류의 작성자 체계를 적용하지 않을까요? – eipark

0

내가 여기에 내 대답을 참조하십시오 outOfOrder을 활성화하고 버전 번호

으로 타임 스탬프를 사용하는 지점 사이의 버전 문제를 극복하기 위해 본 가장 좋은 방법 : How to use Flyway when working with feature branches

관련 문제