우리 프로젝트에는 별도의 개발 분기가 있고 각 릴리스마다 별도의 분기가있는 분기 모델이 있습니다. 다음과 같이 보일 수 있습니다 :Entity Framework 6 코드 첫 번째 마이그레이션 - 여러 분기 생산
그래서 dev에 병합하여 master로 만든 다음 릴리스 분기 (r1, r2, ...)를 만듭니다.
EF 6 (자동이 아닌 수동) 마이그레이션을 사용하려고하지만 답변 방법을 모르는 질문이 있습니다.
이 상상 :
dev _(1)__ ____(4)
/ \ / \
master --+---+----+---+---+----+-(5)*-+--- (...)
r1 \_(2)__/ r2 \(3)______/
각 숫자는 마이그레이션입니다. 그것들은 각 브랜치의 소스 컨트롤에 추가되었고 우리 프로젝트의 프로덕션 인스턴스의 데이터베이스에 적용되었습니다 (우리는 수정을 위해 한동안 다중 릴리스를 지원합니다). 따라서 우리는 다운 그레이드 할 수 없으며 Up()으로 만 이동할 수 있습니다. 별표는 분석 할 시점을 표시합니다. 우리는 마이그레이션이 방법으로 작업 할 :
- R1 데이터베이스가 적용 (2)에만 마이그레이션이를
- R2 데이터베이스가 (1), (2), (3) 적용
- 마스터 데이터베이스가있다 (1) (2), (4) 및 (5)에인가
- DEV 데이터베이스 갖는다 (1), (2) 및 (4)
또한 적용 :
- 우리 데이터베이스에서 약간의 데이터를 잃을 수는 없습니다
- r1 데이터베이스를 r2 (또는 다른 향후 릴리스) 데이터베이스로 업데이트하여 모든 r2 데이터베이스와 동일한 데이터베이스 구조를 유지할 수 있어야합니다 (r2로 생성되거나 이전 버전에서 업데이트 됨)이 코드 첫 번째 모델에 해당합니다.
할 수 있습니까? 그렇다면 어떻게?
자세한 내용은 질문하십시오.
테스트 및 확인을 마친 후 제대로 작동하는지 확인할 수 있습니다! 우리는 종종 "옵션 1 : 공백 '병합 이주 추가"를 사용합니다. 감사! –
마스터가 실행 된 경우 기능 분기의 일부 개발자가 마스터의 일부 마이그레이션 이전에 마이그레이션 타임 스탬프가 설정된 호환되지 않는 모델 변경을 수행 할 때 혼란을 피하기 위해 마스터 분기 마이그레이션 후에 항상 기능 분기 마이그레이션을 다시 생성하는 것이 좋습니다. – JustAMartin
그 링크에 감사드립니다, 그것은 좋은 읽을 거리였습니다! – Phil