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




Flyway поддерживает в схеме специальную таблицу.
Эта таблица содержит информацию обо всех выполненных миграциях БД.
Когда он запускается, flyway проверяет, есть ли в базе кода новые миграции по сравнению с уже примененными из этой таблицы, если есть новые миграции, он применяет их одну за другой, в противном случае просто завершает.
Итак, источником информации о пролетном пути является схема, в которой есть собственная таблица пролетного пути.
Контрольная сумма - это то, что гарантирует, что сам файл миграции не изменится по сравнению с «версией» того же файла миграции, который использовался при фактической миграции. Flyway не делает снимков информационной схемы db. Работает только со своей таблицей в схеме и списком локально доступных файлов - миграции.
Тогда Flyway не проверяет неизменность базы данных, он просто проверяет неизменность содержимого файлов миграции, круто
Спасибо за ответ! Я не уверен, что вы точно ответили на мою точку зрения, за исключением последней строчки. Означает ли это, что Flyway каким-то образом делает снимок db information_schema? Или контрольная сумма применяется только к файлу миграции?