질문에서 알 수 있듯이 이것은 아직 릴리스되지 않은 개발 유형 환경의 마이그레이션에 적용됩니다.
이 문제는 다음 단계로 해결할 수 있습니다. 데이터베이스를 마지막으로 올바른 마이그레이션으로 복원하고 Entity Framework 프로젝트에서 잘못된 마이그레이션을 삭제하고 새 마이그레이션을 생성하여 데이터베이스에 적용하십시오. 참고 : 주석에서 판단 할 때 EF Core를 사용하는 경우 이러한 정확한 명령을 더 이상 적용 할 수 없습니다.
1 단계 : 이전 마이그레이션으로 복원
아직 마이그레이션을 적용하지 않은 경우이 부분을 건너 뛸 수 있습니다. 데이터베이스 스키마를 이전 시점으로 복원하려면 -TargetMigration 옵션과 함께 Update-Database 명령을 실행하여 마지막으로 올바른 마이그레이션을 지정하십시오. 엔티티 프레임 워크 코드가 솔루션의 다른 프로젝트에있는 경우 '-Project'옵션을 사용하거나 패키지 관리자 콘솔에서 기본 프로젝트를 전환해야합니다.
Update-Database –TargetMigration: <name of last good migration>
마지막으로 올바른 마이그레이션의 이름을 얻으려면 'Get-Migrations'명령을 사용하여 데이터베이스에 적용된 마이그레이션 이름 목록을 검색하십시오.
PM> Get-Migrations
Retrieving migrations that have been applied to the target database.
201508242303096_Bad_Migration
201508211842590_The_Migration_applied_before_it
201508211440252_And_another
이 목록은 가장 최근에 적용된 마이그레이션을 먼저 보여줍니다. 다운 그레이드하려는 대상 (예 : 다운 그레이드하려는 대상 이전에 적용) 후에 목록에서 발생하는 마이그레이션을 선택하십시오. 이제 Update-Database를 발행하십시오.
Update-Database –TargetMigration: "<the migration applied before it>"
지정된 마이그레이션 이후에 적용된 모든 마이그레이션은 가장 먼저 적용된 최신 마이그레이션부터 순서대로 다운 그레이드됩니다.
2 단계 : 프로젝트에서 마이그레이션 삭제
remove-migration name_of_bad_migration
remove-migrationEntity Framework 버전에서 명령을 사용할 수없는 경우 원하지 않는 마이그레이션 파일 인 EF 프로젝트 '마이그레이션'폴더를 수동으로 삭제하십시오. 이제 새 이주를 작성하여 데이터베이스에 적용 할 수 있습니다.
3 단계 : 새 마이그레이션 추가
add-migration my_new_migration
4 단계 : 데이터베이스에 마이그레이션 적용
update-database