Невозможно обновить промежуточную базу данных с помощью Asp.net Boilerplate, отлично работает с простым проектом EFCore - PullRequest
0 голосов
/ 04 сентября 2018

Я использую Asp.Net Boilerplate (3.8.1) с Entity Framework Core. У меня есть 3 среды (dev, staging, production), поэтому у меня есть 3 appsettings.json в моем проекте .Web.Host (каждая с именем ConnectionStrings по умолчанию указывает на соответствующую базу данных).

Если я запускаю Update-Database -> моя база данных разработчиков (указанная в appsettings.json) будет правильно обновлена ​​

Начиная с EFCore 2.0, вы должны установить переменную en env для обновления промежуточной базы данных (см. если ядро ​​не использует ASPNETCORE_ENVIRONMENT во время обновления базы данных ).

Я попробовал это (установив переменную env в staging), и она не работала с моим проектом Asp.Net Boilerplate. Я попытался быстро с простым EFCore, и настройка среды не работает.

Есть ли другой способ сделать это?

1 Ответ

0 голосов
/ 04 октября 2018

Я делаю так: если в выпуске есть изменения схемы, я использую dotnet cli для экспорта сценариев миграции.

Так, например:

dotnet ef migrations script -i -o "C:\temp\mychanges.sql"

Это идемпотентный сценарий, который применяет миграции только в том случае, если они еще не применены к базе данных. Это полезно, если вы развертываете несколько баз данных, каждая из которых может иметь разную миграцию.

...