마이 그 레이션을 IgnoreChanges
. 초기 마이그레이션에서 IgnoreChanges
를 사용 IgnoreChanges
지금은 모든 마이 그 레이션을 삭제하고 모든 로직을 사용하여 초기 마이 그 레이션을 시작하겠습니다.
폴더에서 마이그레이션을 삭제하고 Add-Migration
시도하면 전체 파일이 생성되지 않습니다 (비어 있습니다 - 마지막으로 삭제되었지만 이후에 변경된 사항이 없으므로 마이그레이션 됨).
Disable-Migrations 명령이 있습니까? Enable-Migrations
다시 실행할 수 있습니까?
당신은 다음을해야합니다 :
__MigrationHistory
테이블을 삭제합니다 (시스템 테이블 아래있을 수 있음). 그때 패키지 관리자 콘솔에서 다음 명령을 실행하십시오.
Enable-Migrations -EnableAutomaticMigrations -Force
-EnableAutomaticMigrations
와 함께 사용 또는 사용하지 않음
마지막으로 다음을 실행할 수 있습니다.
Add-Migration Initial
문제점 : 마이그레이션을 망칠 때 기존 테이블을 삭제하지 않고 재설정하려고합니다.
문제점 : EF가 처음부터 테이블을 생성하려고하므로 데이터베이스의 기존 테이블로 마이그레이션을 재설정 할 수 없습니다.
할일 :
Migrations_History 테이블에서 기존 마이그레이션을 삭제합니다.
마이그레이션 폴더에서 기존 마이그레이션을 삭제하십시오.
마이그레이션 추가 초기화를 실행하십시오. 이렇게하면 마이그레이션 폴더에 테이블을 만드는 마이그레이션이 만들어 지지만 테이블을 실행하면 오류가 발생하지 않습니다.
이제 EF에 현재 상태의 스냅 샷이있는 MigrationHistory 테이블에서 초기 행을 만들어야합니다. EF는 이주를 적용 할 경우이를 수행합니다. 그러나 데이터베이스에 테이블이 이미 존재하기 때.에 이주를 적용 할 수 없습니다. 따라서 Migration으로 가서 "Up"메서드 안의 모든 코드를 주석 처리하십시오.
이제 update-database를 실행하십시오. 마이그레이션을 적용하고 (실제로 데이터베이스를 변경하지 않음) MigrationHistory에서 스냅 샷 행을 작성합니다.
이제 마이그레이션을 재설정했으며 정상적인 마이그레이션을 계속할 수 있습니다.