首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Liquibase是否只能用于验证ChangeSets是否已被应用,而不能实际执行它们?

Liquibase是否只能用于验证ChangeSets是否已被应用,而不能实际执行它们?
EN

Stack Overflow用户
提问于 2019-03-12 03:41:50
回答 2查看 677关注 0票数 1

出于安全考虑,我的生产系统有一个约束,即所有SQL更改都必须由DBA手动执行。因此,我希望使用Liquibase生成SQL,并让DBA执行它。

但是,在生产环境中启动应用程序时,我希望配置Liquibase以确保所有变更集都已执行,并且具有正确的签名。如果任何变更集具有无效的签名或尚未执行,我希望Liquibase抛出一个异常(然后我可以在我的启动序列中处理)。在任何情况下,我都不希望Liquibase在此环境中运行时更新数据库。

在其他环境中,我想让Liquibase在默认配置下运行-即验证现有的变更集未被修改,并执行任何缺少的变更集。

Liquibase支持这种配置吗?我查看了liquibase.configuration.GlobalConfiguration类,但没有看到提供此配置的任何配置参数。

EN

回答 2

Stack Overflow用户

发布于 2019-03-12 05:52:27

您没有指定如何从应用程序运行Liquibase,所以很难准确地说出来。我认为您会希望使用两个不同的命令-一个用于生产环境,另一个用于所有其他环境。在大多数环境中,您可以使用update命令。在生产环境中,您需要使用status命令,该命令返回未部署的变更集数量的计数或未部署的变更集的列表。

票数 1
EN

Stack Overflow用户

发布于 2019-03-14 05:12:52

我已经创建了一个支持此功能的Liquibase-CDI插件。它基于liquibase CDI扩展,但使用CDI观察者模式。它可以在github上找到,网址是https://github.com/benze/liquibase-cdi

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55109199

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档