엔티티 - 프레임 워크 - 코어에서 병합 병합

asp.net-core c# entity-framework entity-framework-core

문제

모든 마이그레이션 파일을 하나로 병합 할 수 있습니까?

초기 마이그레이션을 만들었습니다.

dotnet ef migrations add InitialMigration

출처

어느 모델 변경이있을 때 새로운 마이그레이션 업데이트를 만듭니다.

하지만 이제 마이그레이션 업데이트 파일이 너무 많습니다. 모든 마이그레이션 파일을 하나로 병합 할 수 있습니까?

물론 데이터베이스 삭제는 옵션이 아니므로 데이터를 보존해야합니다!

수락 된 답변

EF 6.X에는 IgnoreChanges 옵션이 IgnoreChanges . 그것은 당신의 시나리오에 가장 적합합니다. 하지만 유감스럽게도 EF 코어에서 사용할 수있는 기능은 아닙니다.

하지만 해결 방법이 있습니다.

1 단계 : Migrations 폴더에서 모든 마이그레이션 스크립트를 삭제합니다.

2 단계 : 패키지 관리자 콘솔에서 다음을 실행합니다.

PM> Add-Migration InitialCreate

3 단계 : Up()Down() 메서드 코드를 모두 삭제합니다. 이렇게하기 전에 5 단계에서 다시 필요할 때마다 다른 방법으로 저장하십시오.

4 단계 : 실행 :

 PM> Update-Database

__EFMigrationsHistory 테이블에 새 레코드가 삽입됩니다.

5 단계 : 그 후 3 단계 의 안전한 장소에 보관 된 콘텐츠에서 위의 이전 스크립트 (예 : .._InitialCreate ) Up()Down() 메소드를 채 웁니다.

그게 다야. 이제 마이그레이션 파일이 1 개만 있습니다. :)

참고 : 패키지 관리자 콘솔 (PM)이있는 EF 코어 : 패키지 관리자 콘솔


인기 답변

이를 수행하는 한 가지 방법은 모든 마이그레이션 파일을 물리적으로 제거하고 새 마이그레이션 파일을 추가하는 것입니다. 마이그레이션이 "Migrations"폴더에있는 경우 삭제 만하면됩니다. 그렇지 않으면 "ModelSnapshot"파일도 삭제해야합니다. 나는이 접근법이 당신의 문제를 해결할 수 있다고 생각합니다.



Related

아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow