Давайте рассмотрим Какова лучшая стратегия для работы с исправлениями? вопрос из раздела часто задаваемых вопросов Flyway. В этом вопросе:
- Приложение 7 (и версия 7 БД) развернуто в рабочей среде
- Работа начинается с версии приложения 8
- БД версии 8 разработана и развернута в среде приемочных испытаний
- Ошибка выявлена в производстве
- БД версии 7.1 разработана и должна пройти приемочные испытания
Когда flyway: migrate будет вызываться в среде приемочного тестирования, он заметит, что v8 уже был выполнен и что нет необходимости выполнять v7.1.
С одной стороны, это имеет смысл, поскольку v7.1 может быть несовместим с v8, и Flyway не может проанализировать это. Безотказность вполне понятна.
С другой стороны, единственный способ развернуть v7.1 в среде приемочного тестирования - это очистить базу данных и запустить flyway: выполнить миграцию с target = v7.1, тем самым отбрасывая данные, которые могли использоваться.
Есть ли функция, о которой я не знаю, которая обрабатывает этот случай, или только опция clean + migrate.target = v7.1?