Миграция до / после миграции ядра EF для обеспечения нулевого времени простоя - PullRequest
0 голосов
/ 14 июня 2019

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

Мы используем развертывание Octopus и выполняем последовательное развертывание, когда отключаем обновляемый веб-сервер в loadbalancer.

Мы используем первые миграции кода структуры сущностей, а при развертывании запускаем dotnet ef migrations script, чтобы сгенерировать сценарий SQL, который мы можем выполнить для базы данных. Вот где начинается наша борьба.

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

Так что нам нужно как-то до и после миграции

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

Мне не удалось найти инструмент, который может создать для меня эти предварительные миграции на основе имеющегося у меня сценария sql, и я начинаю думать, что это мечта, возможно ли это? и если нет, что люди делают в своем конвейере развертывания?

Я смотрел на Liquibase, DbUp, Roundhouse, но ни один из них не обеспечивает нужную мне функциональность.

...