Автоматизация отката FluentMigrator в Azure Devops - PullRequest
1 голос
/ 01 ноября 2019

В настоящее время имеется конвейер выпуска, который запускает мой проект миграции в направлении вверх - например,

  • Проект веб-приложения развернут в среде
  • В решении у нас есть свободное владениеПроект миграции
  • В рамках конвейера выпуска мы запускаем миграцию до последней версии

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

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

Кто-нибудь полностью автоматизировал откат беглого переноса?

К вашему сведению Мои номера миграции используют дату и время в виде миллисекунд, которые я получаю от https://currentmillis.com/

Обновление:

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

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

1 Ответ

0 голосов
/ 01 ноября 2019

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

...