Liquibase сопоставляет changeset с журналом DATABASECHANGELOG и проверяет его checksum. Это обнаруживает изменения уже применённого changeset, но не доказывает отсутствие drift в самой БД.
За счёт чего Liquibase валидирует целостность применяемых DDL-изменений?
Liquibase сопоставляет changeset с журналом DATABASECHANGELOG и проверяет его checksum. Это обнаруживает изменения уже применённого changeset, но не доказывает отсутствие drift в самой БД.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Liquibase сопоставляет changeset с журналом DATABASECHANGELOG и проверяет его checksum. Это обнаруживает изменения уже применённого changeset, но не доказывает отсутствие drift в самой БД.
Идентификация changeset учитывает id, author и путь, а сохранённая checksum отражает значимое содержимое миграции. Validate также проверяет структуру changelog и связанные ошибки. Ручное изменение таблицы вне Liquibase может не изменить checksum файла, поэтому фактическую схему проверяют отдельно через snapshot/diff и проверки условий. Не «лечите» несовпадение бездумным сбросом checksums: сначала выясните, почему изменилась история, и обычно добавьте новую миграцию.
Источник: www.liquibase.com.