Ответ 1
Первое правило - нет.
Второй - сделать это очень осторожно и использовать Flyway.repair(), чтобы перестроить контрольные суммы в БД с помощью дисков на диске.
Я ищу совет в следующем случае.
Я настроил пролетные и миграционные сценарии в своей производственной среде. При каждом развертывании база данных будет перенесена в текущую версию. Я уже создал несколько сценариев миграции, которые были применены к производительной базе данных.
Недавно я обновил свои инструменты разработки MySQL, которые теперь включают предупреждения об использовании устаревших функций и другие предупреждения. Эти предупреждения не отображались в старой версии. Конечно, я хотел бы исправить предупреждения, особенно для случая, когда будущая версия базы данных больше не будет поддерживать устаревшие функции. Но миграции, содержащие предупреждения, уже развернуты и используются. Если я изменяю один из сценариев, появляется предупреждение:
ERROR: Validate failed. Migration Checksum mismatch for migration 2.0
-> Applied to database : 1778293504
-> Resolved locally : 1831545539
Я мог бы изменить контрольную сумму, которая хранится в базе данных для переноса, но это не похоже на "хороший" способ сделать это. Каков наиболее распространенный способ/лучший способ изменить сценарий миграции после его использования?
Первое правило - нет.
Второй - сделать это очень осторожно и использовать Flyway.repair(), чтобы перестроить контрольные суммы в БД с помощью дисков на диске.
Я полностью согласен с тем, что вы не должны этого делать.
Но если вам действительно нужно, вы можете изменить конфигурацию пролетного пути и установить логическое значение validateOnMigrate как false.
Вот ссылка: https://flywaydb.org/documentation/commandline/migrate#validateOnMigrate