문제

코드 첫 번째 마이그레이션을 프로젝트에 도입하고 싶지만 테스트를 위해이 클라이언트 에게이 전개를 처리하는 방법을 확신하지 못합니다.지금까지는 상황이 매우 간단 해졌으며 방금 CreateDatabaseIfNotExists Initializer를 사용했습니다.자, 두 개의 시나리오가 있습니다.

  1. 그는 기존, 이전 마이그레이션, 데이터베이스를 삭제하고 이니셜 라이저를 사용하여 새, 마이그레이션, 데이터베이스를 만들고, 여기에서 이주를 사용하여 데이터베이스를 업그레이드합니다.MigrateDatabaseToLatestVersion 이니셜 라이저를 사용하여 누락 된 경우 DB를 만들 수 있습니까?

  2. 방금 코드를 배포하고 마이그레이션을 수행하도록하십시오.MigrateDatabaseToLatestVersion를 사용하는 것이지만 여기에 필요한 것이 없으면 확실하지 않습니다.이전 마이그레이션 데이터베이스를 마이그레이션에 적합한 하나로 업그레이드 할 것입니까?

도움이 되었습니까?

해결책

이것은 자동 마이그레이션이 필요할 때 수행하는 것입니다.나는 이것이 당신이 해결책을 찾는 데 도움이되기를 바랍니다.

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

마이그레이션의 구성 파일에서는 생성자 다음을 설정합니다.

AutomaticMigrationsEnabled = true;
AutomaticMigrationDataLossAllowed = false;
.

구성 파일에서 시드 메소드의 재정의가 있어야합니다. 그렇지 않은 경우 시드 데이터를 채울 수 있으면

위의 데이터가 발생하지 않는 한 데이터베이스를 최신으로 최신으로 생성 / 업그레이드하는 것입니다.이렇게하면 클라이언트에 코드를 손을 뗍니다.


사이드 메모에서는 생산 시스템의 경우 일반적으로이를 수행하지 않는 지점을 논할 것입니다.이것은 많은 단점이있었습니다.데이터베이스의 경우 Control이 없으면 생성 된 스크립트 파일을 거부 한 클라이언트를 아직 찾지 못했습니다.

패키지 관리자 콘솔을 통해 마이그레이션을 추가 한 후 다음 명령을 사용 하여이 작업을 수행 할 수 있습니다.

Update-database –script -verbose
.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top