1

프로젝트에 코드 첫 마이그레이션을 소개하고 싶지만 테스트를 위해이 코드를 클라이언트에 배포하는 방법을 잘 모릅니다. 지금까지 모든 것이 간단 해졌고 방금 CreateDatabaseIfNotExists 이니셜 라이저를 사용했습니다. 지금, 나는 두 가지 시나리오가 있습니다EF 코드를 초기화하는 방법 원격 대상의 첫 번째 마이그레이션

  1. 그는 자신의 기존 전에-마이그레이션, 데이터베이스를 삭제하고 함께-마이그레이션, 데이터베이스, 새를 만들 이니셜 라이저를 사용하여, 우리는 자신을 업그레이드하려면 여기부터 마이그레이션을 사용 데이터 베이스. 누락 된 경우 MigrateDatabaseToLatestVersion 초기화 프로그램을 사용하여 DB를 만들 수 있습니까?

  2. 그냥 코드를 배포하고 마이그레이션을 수행하도록합니다. 아무 것도 사용하지 않고 여기에 MigrateDatabaseToLatestVersion이 필요한지 잘 모르겠습니다. 이 방법은 사전 마이그레이션 데이터베이스를 마이그레이션에 적합한 데이터베이스로 업그레이드합니까?

답변

3

이것은 자동 마이그레이션이 필요할 때 수행합니다. 나는 이것이 당신이 솔루션을 찾을 도움이되기를 바랍니다 : 마이 그 레이션에 대한 구성 파일에서

Database.SetInitializer(
    new MigrateDatabaseToLatestVersion<ContextFileName, PathToMigrationsConfig>() 
    ); 
Database.Initialize(false); 

을, 나는 당신이 씨의 재정이 있어야 구성 파일에서 생성자

AutomaticMigrationsEnabled = true; 
AutomaticMigrationDataLossAllowed = false; 

에서 다음을 설정 메서드를 추가하고 시드 데이터를 채울 수 있습니다.

위의 작업은 데이터 손실이 발생하지 않는 한 데이터베이스를 최신으로 만들기/업그레이드하는 것입니다. 이렇게하면 코드를 클라이언트에 전달할 수 있습니다.


프로덕션 시스템의 경우에는 일반적으로이 작업을 수행하지 않을 것이라고 주장합니다. 이것은 많은 단점이있었습니다. 데이터베이스의 경우 아직 생성 된 스크립트 파일을 거부 한 클라이언트를 찾지 못했습니다.

당신은 패키지 관리자 콘솔을 통해 마이그레이션을 추가 한 후 다음과 같은 명령을 사용하여이를 얻을 수 있습니다 :

Update-database –script -verbose 
관련 문제