8

우리 프로젝트에는 별도의 개발 분기가 있고 각 릴리스마다 별도의 분기가있는 분기 모델이 있습니다. 다음과 같이 보일 수 있습니다 :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로 생성되거나 이전 버전에서 업데이트 됨)이 코드 첫 번째 모델에 해당합니다.

할 수 있습니까? 그렇다면 어떻게?

자세한 내용은 질문하십시오.

답변

11

난 당신이 각각의 경우에 무엇을 할 수 있는지 설명을 시도 할 수 있지만, 매우 복잡하고 여기에 설명 된 것 같이 내가뿐만 아니라 그것을 설명 할 수 없을 것입니다 :

Code First Migrations in Team Environments

을이 복잡하지만 및 이 문서를 자주 참조하여 분기를 병합해야합니다.이 문서를 따르면 모든 질문을 해결할 수 있습니다.

면책 조항 : 아는 것은 자급 자족해야 함을 알고 있습니다. 그러나 설명은 너무 복잡하고 길기 때문에 여기에 초록을 추가 할 수도 없습니다. 나는 연결된 MSDN 문서가 사라지지 않기를 바랍니다.

+0

테스트 및 확인을 마친 후 제대로 작동하는지 확인할 수 있습니다! 우리는 종종 "옵션 1 : 공백 '병합 이주 추가"를 사용합니다. 감사! –

+0

마스터가 실행 된 경우 기능 분기의 일부 개발자가 마스터의 일부 마이그레이션 이전에 마이그레이션 타임 스탬프가 설정된 호환되지 않는 모델 변경을 수행 할 때 혼란을 피하기 위해 마스터 분기 마이그레이션 후에 항상 기능 분기 마이그레이션을 다시 생성하는 것이 좋습니다. – JustAMartin

+0

그 링크에 감사드립니다, 그것은 좋은 읽을 거리였습니다! – Phil

관련 문제