Знает ли Flyway о состоянии базы данных или проверяет исключительно неизменяемость файлов миграции?

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

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
0
47
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Flyway поддерживает в схеме специальную таблицу.

Эта таблица содержит информацию обо всех выполненных миграциях БД.

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

Итак, источником информации о пролетном пути является схема, в которой есть собственная таблица пролетного пути.

Спасибо за ответ! Я не уверен, что вы точно ответили на мою точку зрения, за исключением последней строчки. Означает ли это, что Flyway каким-то образом делает снимок db information_schema? Или контрольная сумма применяется только к файлу миграции?

Whimusical 23.11.2018 22:00

Контрольная сумма - это то, что гарантирует, что сам файл миграции не изменится по сравнению с «версией» того же файла миграции, который использовался при фактической миграции. Flyway не делает снимков информационной схемы db. Работает только со своей таблицей в схеме и списком локально доступных файлов - миграции.

Mark Bramnik 23.11.2018 22:03

Тогда Flyway не проверяет неизменность базы данных, он просто проверяет неизменность содержимого файлов миграции, круто

Whimusical 23.11.2018 22:08

Другие вопросы по теме