Прямо сейчас у меня есть служба, которая взаимодействует с БД, используя Entity Framework. Когда он запускается, он инициализирует БД, используя MigrateDatabaseToLatestVersion<Context, Configuration>
, и он работает хорошо.Откат миграции Entity Framework в C#
Ситуация такова, что мы хотим добраться до того места, где у нас есть активные/промежуточные среды с одним исключением: оба связаны с одной и той же БД (у меня нет контроля над этим).
Итак, прямо сейчас, когда я развертываю на этапе, я развертываю службу как отключенную. Когда мы переключаем этап с производством, я выключаю производственный сервис, запускаю промежуточную службу и, при необходимости, переносит DB вперед. Это хорошо работает, и мы делаем это в нескольких средах с предварительным заказом. Если есть проблема (только когда-либо однажды), мы должны вручную запустить Update-Database '[previous migration name]'
, а затем переключить все на предыдущий сервер.
Я хотел бы автоматизировать миграцию назад так же, как и для переноса вперед. То есть, если служба запускается и видит, что ее схема имеет 1 версию, а самая новая миграция произошла за последние x дней, она автоматически откатится от схемы и примет любую потерю данных.
Я просто не знаю, как это сделать.