6

EF 4.1 (코드 우선)으로 개발 된 DB 하나를 수정하고 싶습니다. 나는 EF 4.3으로 프로젝트를 업그레이드하고이 단계를 수행 : http://blogs.msdn.com/b/adonet/archive/2012/02/09/ef-4-3-automatic-migrations-walkthrough.aspxEF (Entity Framework) 4.3 마이그레이션 도구가 EF 4.1 DB에서 작동하지 않습니다.

모든 것이 잘되어 가고,하지만 현재의 DB (EF 4.1 코드 순으로)에 테스트 할 때, 업데이트-데이터베이스이 오류 인상 :

Cannot scaffold the next migration because the target database was created with a version of Code First earlier than EF 4.3 and does not contain the migrations history table. To start using migrations against this database, ensure the current model is compatible with the target database and execute the migrations Update process. (In Visual Studio you can use the Update-Database command from Package Manager Console to execute the migrations Update process).

EF 4.1 (코드 우선) DB를 어떻게 마이그레이션 할 수 있는지 궁금합니다. 또한 DB가 라이브이고 데이터가있어 테이블을 삭제할 수 없습니다.

+1

읽기 오류 메시지가. 지시에 따르세요. – jrummell

+0

하지만 재귀적인 오류 메시지입니다. –

답변

8

모델을 변경하기 전에 빈 마이그레이션을 만들어 실행해야합니다. 마이그레이션 기록 테이블이 생성됩니다. 그런 다음 새 변경 사항에 대해 마이그레이션을 사용할 수 있습니다. 나는이 주제에 대해 walkthrough article이라고 썼다.

+0

안녕 Ladislav, 귀하의 지시에 따라,하지만 패키지 관리자 콘솔 (PM> 추가 마이그레이션 InitialMigration -IgnoreChanges)에서 초기 마이그레이션을 추가 할 때이 오류가 다시 발생했습니다. "대상 데이터베이스가 다음과 같이 만들어 졌기 때문에 다음 마이그레이션을 비월화할 수 없습니다. EF 4.3보다 이전 버전의 코드이고 마이그레이션 기록 테이블을 포함하지 않습니다 .... " – Pouyan

+0

변경 사항이 적용되기 전에"Add-Migration InitialMigration -IgnoreChanges "를 수행해야한다는 단서가있었습니다. – Pouyan

+0

이는 마지막에 언급되었습니다. 기사 단락 –

0

실행 "추가 마이그레이션 InitialMigration -IgnoreChanges을"모델을 변경하기 전에 .. 필요한 사항을 변경 한 후 실행 "업데이트 데이터베이스"