Доставка исправлений с помощью Flyway - PullRequest
2 голосов
/ 29 июля 2011

Давайте рассмотрим Какова лучшая стратегия для работы с исправлениями? вопрос из раздела часто задаваемых вопросов Flyway. В этом вопросе:

  1. Приложение 7 (и версия 7 БД) развернуто в рабочей среде
  2. Работа начинается с версии приложения 8
  3. БД версии 8 разработана и развернута в среде приемочных испытаний
  4. Ошибка выявлена ​​в производстве
  5. БД версии 7.1 разработана и должна пройти приемочные испытания

Когда flyway: migrate будет вызываться в среде приемочного тестирования, он заметит, что v8 уже был выполнен и что нет необходимости выполнять v7.1.

С одной стороны, это имеет смысл, поскольку v7.1 может быть несовместим с v8, и Flyway не может проанализировать это. Безотказность вполне понятна.

С другой стороны, единственный способ развернуть v7.1 в среде приемочного тестирования - это очистить базу данных и запустить flyway: выполнить миграцию с target = v7.1, тем самым отбрасывая данные, которые могли использоваться.

Есть ли функция, о которой я не знаю, которая обрабатывает этот случай, или только опция clean + migrate.target = v7.1?

1 Ответ

0 голосов
/ 06 августа 2011

Больше, чем другая функция, речь идет о другом процессе.

Если вы хотите сохранить свои данные в среде принятия, я бы порекомендовал отгрузить v8 базы данных с исправлением , и тогда фактическое изменение может быть v8.1. Функции схемы v8 могут оставаться неиспользованными до тех пор, пока не будет развернут соответствующий код. Однако в большинстве случаев это не причиняет вреда.

...