2011-12-19 3 views
1

У db-maintain есть понятие повторяемых скриптов, таких как хранимые процедуры/триггеры. Когда есть изменения к такому сценарию, его нужно снова выкатить. Flyway, похоже, всегда проверяет соглашение об имени файла. Поэтому, чтобы иметь повторяющийся скрипт, нам может понадобиться переименовать файл. Есть ли более эффективный способ сделать это?Использование пролетного пути для эффективного управления повторяемыми сценариями

+0

Просто из любопытства: не могли бы вы более подробно описать свой прецедент? –

+0

Идея состоит в том, чтобы поддерживать хранимые процедуры и триггеры, так же, как мы поддерживаем код. Если изменения должны быть изменены, вы просто меняете файл, поэтому контрольная сумма отличается, и скрипт снова отображается в db. Обеспечение подлинности сценария, естественно, должно быть до разработчика. например: в MySQL; разработчик должен убедиться, что перед CREATE триггером или блоком процедуры есть оператор DROP IF EXISTS. – gazal

+0

Спасибо. Я понимаю, откуда вы сейчас. Триггеры и хранимые процедуры являются объектами базы данных, такими как все остальные, и поэтому я считаю, что они должны следовать нормальным шаблонам миграции. –

ответ

3

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

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

Подробнее here.

2

Эта проблема возникла в Issue Tracker и в этом other question.

В настоящее время нет поддержки из-за этого.

Лично я бы

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

Если это не так, не стесняйтесь снимать Issue и комментировать подробности о вашем прецеденте.

Обновление: Повторяющиеся скрипты теперь полностью поддерживаются с Flyway 4.0. См. https://flywaydb.org/documentation/migration/repeatable

Смежные вопросы