Автоматическая миграция модели в таблице Azure .Net CORE

Вы можете использовать логический флаг для отслеживания - это нечетная или четная строка, то есть

$isOdd = true;
while(...){
  if($isOdd) echo '<li style="background: #222;"></li>';
  else echo '<li></li>';
  $isOdd = ! $isOdd;
}
0
задан Glyn 18 March 2019 в 14:06
поделиться

2 ответа

Этот подход (MyContext.Database.Migrate();) не для всех. Хотя это отлично подходит для приложений с локальной базой данных , большинству приложений потребуется более надежная стратегия развертывания, например, создание сценариев SQL.

При развертывании в Azure вы можете добавить следующий код в метод Configure в Startup.cs

using (var scope = app.ApplicationServices.GetService<IServiceScopeFactory>().CreateScope())
{
    scope.ServiceProvider.GetRequiredService<ApplicationDbContext>().Database.Migrate();
}

. Для более подробной информации вы можете обратиться к этому SO потоку .

0
ответ дан Joey Cai 18 March 2019 в 14:06
поделиться

Очевидно, что в Entity Framework CORE нет способа запустить миграцию. Еще несколько месяцев назад у опции публикации в Visual Studio был флажок «выполнить миграцию», но теперь этого нет.

Вы можете попытаться запустить

dotnet ef database update

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

dotnet ef migrations script

с различными переключателями и т. Д., Но это приводило к различным ошибкам. В конце концов я нашел это.

Script-Migration -from 20190306131332_migration1 -o fileName.sql

, который успешно генерирует SQL для запуска вручную с базой данных.

-from 

- последний запуск миграции, поэтому, если я хочу получить все изменения, так как миграция1 (т.е. миграция2, миграция3 и т. Д.) - это миграция -from, критерии

. Это создаст файл. называется filename.sql в корневом каталоге, где находится файл .sln.

0
ответ дан Glyn 18 March 2019 в 14:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: