0

내 엔티티 모델 (몇 가지 추가 테이블 열)에서 변경 한 내용으로 db를 업데이트하려고하지만 삭제하지 않으려합니다. & 데이터베이스를 다시 만듭니다. 모든 테스트 데이터가 삭제 될 것입니다. 이전에이 작업을 수행하고 Seed 메서드를 사용하여 기본 데이터를 작성했지만 이제는 오히려 유지하려는 많은 데이터가 있습니다.EF6 코드 데이터를 삭제하지 않고 첫 번째 업데이트 데이터베이스

나는 갱신 데이터베이스를 실행하려고했지만 나는 오류 얻을 : 마이그레이션 스크립트 나는 테이블 ActivityNoteLines를 작성하려고 것을 볼 수 있습니다 보면

There is already an object named 'ActivityNoteLines' in the database. 

합니다. 분명히 나는 ​​그것에 그것을 원하지 않는다. 그때

Add-Migration InitialCreate –IgnoreChanges 

를 사용하여 초기 마이그레이션을 생성하지만 갱신 데이터베이스를 실행할 때 지금은 변경 사항이 없습니다 생각!

나는 원하는 것을 할 수 있다고 확신하지만, 제대로 작동하지 않는 것 같습니다. 만약 내가 & db를 다시 만들었지 만 누군가가 성공적으로 업데이트하고 데이터를 보관했는지 알고 싶습니다.

+0

사용중인 데이터베이스 초기화 프로그램은 무엇입니까? – Thewads

+0

@ Thewads - 이전에 분명히 모든 데이터를 삭제하는 DropCreateDatabaseIfModelChanges를 사용하여 CreateDatabaseIfNotExists를 사용하고 있습니다. – markpsmith

+1

코드 우선 마이그레이션을 사용하는 경우'MigrateDatabaseToLatestVersion'을 사용하십시오. – Thewads

답변

0

문제는 마이그레이션 폴더의 작성 스크립트가 모든 테이블을 생성하려고한다는 것입니다. 업데이트가 실행되면 dbo.MigrationHistory 테이블을보고 이미 실행 된 마이그레이션 스크립트를 확인합니다. 데이터베이스에서 테이블에 create가 없으므로 Update가이를 실행하려고합니다.

수동으로 항목을 테이블에 추가하거나 작성 스크립트를 편집하여 위로 및 아래로 메서드의 내용을 지울 수 있습니다. 그런 다음 업데이트를 실행하면 작성 스크립트가 실행되어 아무 작업도 수행하지 않고 항목을 MigrationHistory 테이블에 작성합니다.

관련 문제