우리는 우리가 ORM로 엔티티 프레임 워크를 개조 일부 기존 응용 프로그램을 가지고있다.마이그레이션 기존 데이터베이스와 빈 개발 모두 데이터베이스와 엔티티 프레임 워크를 사용하여
목표는 마이그레이션에 (기존의 데이터베이스에서) 첫 번째 코드를 사용하는 것입니다,하지만 우리는 문제가 기존 데이터베이스 시나리오에 맞게 마이그레이션을 얻는 데 :
- 테스트/자극 데이터베이스 이미 모든 테이블이 그 코드와 일치합니다. 그래도 마이그레이션 할 수 없습니다.
- 비어있는 로컬 호스트 개발 데이터베이스입니다.
목표
- 개발자는 단위 테스트 프로젝트를 실행할 수 있으며, 데이터베이스의 모든 테이블과 함께 자체를 생성합니다.
- __migrationsHistory 테이블을 생성 돌봐 년 이후 생산에 필요한 모든 변경됩니다 마이그레이션에서 스크립트를 생성 할 수있을 것입니다.
패키지 관리자를 사용하여 기본 마이그레이션 초기화에 1을 해결할 수있다. 또는 ignore-changes 스위치를 사용하여 2를 해결하십시오. 그러나 동시에 둘 다 성공하는 데 성공하지 못했습니다.
나는 시도했다 :
- 추가 마이그레이션 InitialCreate; 마이그레이션 추가 MigrationHistoryTable - 무시 - 변경;
개발자가 할 수있는 아이디어 : 갱신 데이터베이스
를 스크립트가 갱신 데이터베이스 -Script -SourceMigration을 사용하여 생성 될 수있는 시험/자극에 갈 때 : $ InitialDatabase. 문제는 스크립트가 initialCreate가 누락 된 것으로 마이그레이션하여 기존 테이블을 다시 추가하려고 시도한다는 것입니다. MigrationHistoryTable의 소스 마이그레이션은 누락 된 경우 마이그레이션 기록 테이블을 추가하지 않습니다 (테스트/prod에 있음). - 또 다른 시도 두 마이그레이션 프로젝트, 단위 테스트 및 다른 데이터베이스를 가지고 있었다. 그러나 이것은 조금 더러워졌다.
다른 제안?
들으 김
안녕하세요, 저는 수동 스크립팅 (또는 DB에서 자동 생성)없이 EF가 이러한 상황을 지원할 수있는 솔루션을 찾고 있습니다. 더 나은 제안이 없다면 이것을 해결책으로 표시 할 것입니다. Thy Kim –
Entity Framework 마이그레이션 기능은 모두 해당 __MigrationHistory 테이블에 연결됩니다. 데이터베이스를 리버스 엔지니어링하고 로컬에서 Entity Framework 마이그레이션을 사용한 다음 [SQL Server 데이터 도구] (http://www.microsoft.com/en-us/download/details)의 스키마 비교 도구를 사용할 수도 있습니다. aspx? id = 36843) 또는 __MigrationHistory 테이블이 프로덕션 환경에있는 것을 일단 이해하지 못하면 프로덕션을 가리 키도록 연결 문자열을 변경하고 업데이트 데이터베이스를 수행 할 수 있습니다. –
안녕하세요, Miniver, 첫 번째 제안 된 솔루션이 우리와 함께 갈 것 같습니다. Thx –