2015-11-10 4 views
0

У меня есть два разных и независимых файла dbcontexts, и я хочу создать схему db (используя npgsql/posgresql) с первой миграцией кода. Я установил в 2 разных папках конфигурации (с параметром AutomaticMigrationsEnabled для false) и 2 начальных файла миграции (один раз для каждого dbcontext) с помощью инструмента командной строки Add-Migration.ошибка при использовании нескольких миграций/конфигураций EF (__MigrationHistory воссоздается каждый раз)

тогда я использую командную строку Update-Database с первой конфигурацией, и она работает, db правильно создается с таблицами, связанными с первым контекстом. Но когда я пытаюсь использовать Update-Database с другой конфигурацией, я получаю исключение, потому что он пытается создать таблицу __MigrationHistory, которая уже существует.

что не так в моем коде?

+0

Это может помочь http://www.dotnet-tricks.com/Tutorial/entityframework/2VOa140214-Entity-Framework-6- Code-First-Migrations-with-Multiple-Data-Contexts.html – DavidG

+0

https://msdn.microsoft.com/en-us/magazine/dn948104.aspx также может помочь. Если вы сообщаете точные команды, которые вы используете в командной строке, это может помочь в определении проблемы, хотя я задаюсь вопросом, является ли это проблемой npgsql. – jjj

ответ

0

Я нашел ошибку, я не знаю, является ли это ошибкой сущностей или npgsql dll, но если dbcontexts использует схему, отличную от dbo (у меня есть вся схема, которая имеет значение «public», имя postgresql по умолчанию), необходимо установить ту же схему также для таблицы предыстории, в которой разбивается HistoryContext https://msdn.microsoft.com/en-us/data/dn456841.aspx.

подробная ошибка в том, что псевдо-код выполняется бушель миграции является

if not exist the table 'dbo'.__MigrationHistory 
create the table 'public'.__MigrationHistory 

 Смежные вопросы

  • Нет связанных вопросов^_^