Команды Liquibase делятся на четыре категории: обновление, откат, информационные и вспомогательные.
Команды обновления
| Команда |
Описание |
update |
Применить все невыполненные changeset-ы |
updateCount <N> |
Применить следующие N changeset-ов |
updateSQL |
Вывести SQL, который будет выполнен (dry-run), без применения |
updateTestingRollback |
Применить changeset, откатить, применить снова — для проверки rollback |
Команды отката
| Команда |
Описание |
rollback <tag> |
Откатить до указанного тега |
rollbackCount <N> |
Откатить последние N changeset-ов |
rollbackToDate <date> |
Откатить до указанной даты |
rollbackSQL <tag> |
Вывести SQL для отката (без выполнения) |
Информационные команды
| Команда |
Описание |
status |
Показать список невыполненных changeset-ов |
history |
Показать историю выполненных changeset-ов |
validate |
Проверить changelog на корректность (синтаксис, checksum) |
Вспомогательные команды
| Команда |
Описание |
diff |
Сравнить две БД и показать различия |
diffChangeLog |
Сравнить две БД и сгенерировать changelog с различиями |
generateChangeLog |
Сгенерировать changelog из существующей БД |
clearCheckSums |
Сбросить все контрольные суммы |
releaseLocks |
Снять блокировку в DATABASECHANGELOGLOCK |
tag <name> |
Пометить текущее состояние БД тегом |
dropAll |
Удалить все объекты из схемы (осторожно!) |
Пример типичного использования
# Проверить, что changelog корректен
liquibase validate
# Посмотреть, что будет выполнено
liquibase status
# Посмотреть SQL без выполнения
liquibase updateSQL
# Применить миграции
liquibase update
# Пометить текущее состояние
liquibase tag release-1.0
На собеседовании: достаточно знать основные команды (update, rollback, status, validate) и объяснить, зачем нужен updateSQL. Частая ошибка — не упомянуть validate, хотя это первый шаг перед любым деплоем.