8

각각 고유 한 dbcontext가있는 두 개의 데이터베이스가 있습니다. 2 가지 마이그레이션 구성을 설정했습니다. 첫 번째 데이터베이스는 괜찮습니다 (Add-Migration DB1_InitialCreate -ConfigurationTypeName DB1Configuration). 내가 사용하는 두 번째 DB와 초기 마이그레이션을 만들려고 할 때 : Add-Migration DB2_InitialCreate -ConfigurationTypeName DB2Configuration을, 나는 다음과 같은 오류 얻을 :여러 데이터베이스/DbContext를 사용하는 EF 코드 첫 마이그레이션

Unable to generate an explicit migration because the following explicit migrations are pending: [201205082215265_DB1_InitialCreate]. Apply the pending explicit migrations before attempting to generate a new explicit migration.

그래서 나는 말한다 무엇과 함께 데이터베이스 업데이트 : 그럼

Update-Database -ConfigurationTypeName DB1Configuration 

를 I 두 번째 db에 대한 마이그레이션을 다시 추가하려고하지만 동일한 오류가 계속 발생합니다.

두 데이터베이스/컨텍스트에서 마이그레이션을 수행하는 방법에 대한 아이디어가 있습니까?

답변

10

나는 내 자신의 질문에 대답 할 수있었습니다. 두 개의 구성 클래스가 동일한 네임 스페이스에 존재했습니다. 내가 그들을 분리하자마자 모든 것이 효과가 있었다.

+0

:

그것은 하나 개의 데이터베이스 모두 여러 DbContexts에 대한 각각 자신의 데이터베이스에 대한 여러 DbContexts에 대한 동일한 절차의

같은 이름 공간에있는 2 개의 DbContext, 그러나이 문제는 발생하지 않습니다. EF 5.0 RTM 사용. – angularsen

+1

+1 - 나 또한 네임 스페이스 (EF 5.0)로 구분해야했습니다. – rufo

+2

또한 네임 스페이스 (EF 6.x)로 구분해야했습니다. Update-Database -ConfigurationTypeName nameOfConfiguration에는 충분하지 않았습니다. – subsci

5

그것은 잠시왔다,하지만이 문제에 대한 더 나은 답 :

Update-Database -ConfigurationTypeName "SlaveConfiguration" 
       -StartupProjectName "FacturatieMVCv2.Data" -Verbose 
       -ConnectionString "connstring;" 
       -ConnectionProviderName "System.Data.SqlClient" 
5

엔티티 프레임 워크 6으로는 쉽게 할 수 있습니다. 내가 가진

Enable-Migrations -ContextTypeName <DbContext-Name-with-Namespaces> -MigrationsDirectory:<Migrations-Directory-Name>

Add-Migration -configuration <DbContext-Migrations-Configuration-Class-with-Namespaces> <Migrations-Name>

Update-Database -configuration <DbContext-Migrations-Configuration-Class-with-Namespaces> -Verbose

Source

관련 문제