1

명시 적 마이그레이션을 포함한 EF 4.3을 사용하는 Im. 새로운 마이그레이션을 정의하고 로컬 Dev db에서 Update-Database를 호출하면 모든 것이 잘 작동하고 적용되지 않은 마이그레이션 만 db에 적용됩니다.하나 이상의 데이터베이스 (dev, staging, prod)가있는 EF 4.3 명시 적 마이그레이션 사용 방법

그러나 나는 DB 상태와 기존 __MigrationHistory 테이블이 무시됩니다 것으로 보인다

Update-Database -ConnectionStringName=MyProdConnectionStringName

와 다른 DB를 (즉, 마이그레이션 전에 내 dev에 DB와 같은 상태에있는) 마이그레이션 할 때 ef는 모든 마이그레이션을 내 prod db에 적용합니다. 거기에 이미 테이블이 있기 때문에 원인이 실패합니다.

어쩌면 그 관련 알고, 내가 [Table("TabName", Schema = "stepid")]와 내 테이블에 대한 사용자 정의 스키마를 사용합니다. __MigrationHistory 테이블에는 데이터베이스의 기본 스키마가 있습니다 (내 dev 컴퓨터의 dbo 및 내 환경의 프로젝트).

답변

0

좋습니다. __MigrationHistory 테이블은 스키마 dbo에 있어야합니다. EF 마이그레이션은 데이터베이스를 만들 때 데이터베이스의 기본 스키마 (내 경우에는 "프로젝트"라고 함)를 사용하고 Update-Database을 호출하면 해당 테이블을 쿼리하지 않지만 데이터베이스에 마이그레이션이 적용되지 않았다고 가정합니다.

수동으로 스키마를 dbo로 변경하면 정상적으로 작동합니다.