Можно ли использовать Liquibase только для проверки того, что наборы изменений были применены, но фактически не выполняют их? - PullRequest
1 голос
/ 11 марта 2019

У меня есть ограничение для моей производственной системы, что все изменения SQL должны выполняться вручную администратором базы данных в целях безопасности.Следовательно, я хочу использовать Liquibase для генерации SQL и заставить его выполнить его администратором базы данных.

Однако при запуске приложения в Production я хотел бы настроить Liquibase, чтобы убедиться, что все наборы изменений были выполнены иправильные подписи.Если какой-либо из наборов изменений имеет недопустимую подпись или не был выполнен, я бы хотел, чтобы Liquibase выдал исключение (которое я могу затем обработать в своей последовательности запуска).Ни при каких обстоятельствах я бы не хотел, чтобы Liquibase обновлял БД при работе в этой среде.

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

Поддерживает ли Liquibase этот вид конфигурации?Я просмотрел класс liquibase.configuration.GlobalConfiguration, но не вижу параметров конфигурации, которые бы обеспечивали эту конфигурацию.

Ответы [ 2 ]

1 голос
/ 14 марта 2019

Я создал аддон Liquibase-CDI, который поддерживает эту функцию. Он основан на расширении liquibase-cdi, но вместо этого использует схему наблюдателя CDI. Его можно найти на github на https://github.com/benze/liquibase-cdi

1 голос
/ 12 марта 2019

Вы не указываете, как вы запускаете Liquibase из своего приложения, поэтому сложно сказать точно.Я думаю, вы захотите использовать две разные команды - одну для производства и одну для всех других сред.В большинстве сред вы используете команду update.В производственной среде вам нужно будет использовать команду status, которая возвращает счетчик числа неразвернутых наборов изменений или список неразвернутых наборов изменений.

...