2017-11-01 2 views
2

~ 200 개의 테이블을 가진 데이터베이스 스키마가 있습니다. 마이그레이션 할 때마다 생성되는 모델 스냅 샷 (Migration.Designer.cs)은 ~ 20K 줄입니다. 따라서 많은 수의 마이그레이션을 수행하면 CI 구축이 느려집니다 (솔루션을 빌드하는 ~ 30 건의 마이그레이션은 마이그레이션을 수행하는 데 6 분이 소요되거나 마이그레이션없이 4 분이 소요됨).Entity Framework 핵심 : 마이그레이션을 되돌릴 수 없으면 Migration.Designer.cs를 삭제해도 안전합니까?

그럼, 이전 마이그레이션에 대한 모델 스냅 샷을 삭제해도 안전합니까? (되돌릴 수 없음을 알고 있습니까?) 모델 스냅 샷은 되돌리기 - 마이그레이션을 제외한 다른 용도로 사용됩니까?

+1

우리가하는 일입니다. 마이그레이션이 완료되면 [여기] (https://cpratt.co/migrating-production-database-with-entity-framework-code-first/)에 설명 된대로 롤백합니다. 정보를 보내 주셔서 감사합니다! –

답변

2

되돌리기 - 마이그레이션을 제외한 다른 작업에는 모델 스냅 샷이 사용됩니까?

예. 필요한 경우가 몇 가지 있습니다. SQL 서버에서 이러한 경우는 다음과 같습니다

  • AlterColumn 열이 축소되거나 계산 된 표현이 변경되고 인덱스가 독특하고 참조 경우 인덱스는 메모리에 최적화 된 테이블에
  • CreateIndex를 재 구축 할 필요가있을 때 null이 허용되는 열

대부분의 경우 삭제하는 것이 안전 할 수 있지만 마이그레이션 후에도 여전히 작동하는지 테스트하십시오.

+1

! 따라서 안전한 데이터베이스에서 시작하여 마이그레이션을 하나씩 적용하는 테스트를 수행하면 안전합니다. :) – Shaddix

관련 문제