저는 Entity Framework을 처음 사용하고 있으며 처음 코드를 새 데이터베이스에 적용하는 데 문제가 있습니다. 마이 그 레이션이 나쁜 상태에 빠졌다고 생각합니다. 코드 첫 번째 마이그레이션이 보이지 않습니다.
나는 기존 데이터베이스로 시작, 그래서 나는 괜찮 았는데를 사용하여 초기 빈 마이그레이션을 만들었습니다. 그 때 나는 새로운 엔티티를 추가하고 괜찮 았는데 다른 마이그레이션추가 마이그레이션 초기 -IgnoreChanges
추가 마이그레이션 NEW_ENTITY
를 만들었습니다. 이 마이그레이션을 __MigrationHistory
테이블이없는 기존 데이터베이스에도 적용 할 수 있으며 올바르게 업데이트됩니다.
빨리 감기 며칠 후 몇 가지 커밋이 있습니다. 이제 마이그레이션을 적용하려는 새로운 "깨끗한"데이터베이스가 생겼습니다. 나는 새 데이터베이스에서 내 app.config 파일을 가리
업데이트 - 데이터베이스
를 실행 비주얼 스튜디오에 가지고 그리고 그것은 나에게 맞게 데이터베이스를 업데이트 할 수 없습니다
를 알려줍니다 현재 모델은 의 변경 사항이 보류 중이며 자동 마이그레이션이 비활성화되어 있기 때문에 현재 모델입니다. 코드 기반 마이그레이션에 대한 보류중인 모델 변경 사항 을 작성하거나 자동 마이그레이션을 사용하도록 설정하십시오. 자동 마이그레이션을 사용하려면 DbMigrationsConfiguration.AutomaticMigrationsEnabled를 으로 설정하십시오. Add-Migration 명령을 사용하여 보류중인 모델 변경 사항을 코드 기반 마이그레이션에 쓸 수 있습니다.
그러나 보류중인 모델 변경 사항이 없습니다. 아무것도 변하지 않았다. 그러나 단지 무슨 일이 일어날 지보고, 나는
추가 마이그레이션 X
를 실행하며 데이터베이스 모델에있는 모든 개체를 추가하는 새로운 마이그레이션을 만들었습니다. 기본적으로 마치 마이그레이션이없는 것처럼 시작합니다. 그래서 그 중 하나를 삭제 한 후 -IgnoreChanges
플래그로 다시 추가했습니다. 그것은 저에게 빈 칸 하나를줍니다. 다음
업데이트 - 데이터베이스
를 실행하면 그것은 x
마이그레이션을 실행하지만 완전히 내가 며칠 전 (Initial
및 New_Entity
) 만든 마이그레이션을 무시합니다. 그들이 존재한다는 것을 모르는 것 같습니다.
분명히 뭔가 나쁜 상태이지만 나는 그것을 되 찾을 수 있는지 잘 모르겠습니다. 새 엔티티 만 있으면 빈 컨테이너가 필요하기 때문에 마이그레이션을 삭제하고 다시 만들 수는 없습니다. 엔티티를 일시적으로 주석 처리 할 수있는 것은 많은 코드가 이미 그것에 의존하기 때문입니다.
어떻게 이런 혼란에 빠지게 되었습니까? 어떻게 나갈 수 있습니까?