Выдаст ли командная строка Liquibase updateSQL ошибку, если набор изменений уже был применен?

#database-schema #liquibase

#database-schema #liquibase

Вопрос:

Команда updateSQL liquibase, похоже, не выдает ошибку при запуске командной строки updateSQL, поскольку она генерирует соответствующие инструкции SQL для набора изменений вместе с записью, которая должна быть создана в таблице DATABASECHANGELOG.

Мое требование заключается в том, что я могу только сгенерировать SQL и передать его моему администратору базы данных. Но выдаст ли liquibase ошибку, даже если один из наборов изменений в xml не будет создан до создания SQL для набора изменений?

Пожалуйста, помогите

Ответ №1:

UpdateSQL не завершится ошибкой, если набор изменений уже запущен. Цель Liquibase — отслеживать, какие наборы изменений были применены, и «выполнять» только те наборы изменений, которые не были запущены, пропуская те, которые были.

Если вы работаете в обычном режиме обновления, Liquibase будет напрямую выполнять каждый набор изменений по очереди. Если вы работаете в режиме updateSql, Liquibase фактически не выполнит SQL, а вместо этого выведет то, что он должен был выполнить.

Liquibase не выдаст никаких ошибок в updateSQL. Однако, если состояние базы данных, с которой вы собираетесь выполнить файл SQL, отличается от состояния базы данных, с которой вы запускаете updateSQL, результирующий SQL может быть недействительным. Нет повторной проверки того, был ли выполнен набор изменений в выводе SQL, это просто простой сценарий «выполнить эти команды».