gpt4 book ai didi

liquibase - 使用 Liquibase 上下文有条件地激活/停用更改集

转载 作者:行者123 更新时间:2023-12-02 04:22:22 25 4
gpt4 key购买 nike

我们有变更集一:

--changeset change_one runOnChange:true

和变更集二:

--changeset change_two runOnChange:true context:kansas

change_one适用于我们的所有安装,但change_two仅适用于我们的“堪萨斯”安装。我们希望确保每当change_one发生更改时,change_two都会被执行——我们该如何做到这一点?

change_one 具有 runOnChange:true 因此只要发生更改就会运行。但是我们如何确保change_two在change_one执行时运行——但仅当我们传递context:kansas时?

最佳答案

当您在不指定任何上下文的情况下运行 Liquibase 时,您可能认为不应激活任何上下文,但实际上 works as documented所有上下文都将被激活。如果您在更改日志中使用上下文来禁用更改集,则每次执行 Liquibase 时都必须设置上下文参数。例如

mvn process-resources liquibase:update -Dliquibase.contexts=production

您还应该查看 labels Liquibase 3.3 中添加的功能。不同之处在于调用者可以指定一些复杂的表达式。例如

mvn process-resources liquibase:update -Dliquibase.labels=!kansas

但请注意,当未指定标签表达式时,行为与上下文相同。

更改集示例:

<changeSet id="tag-v1" author="a">
<tagDatabase tag="v1"/>
</changeSet>

<changeSet id="tag-v1a" author="a" context="kansas">
<tagDatabase tag="v1a"/>
</changeSet>

<changeSet id="tag-v1b" author="a" labels="kansas">
<tagDatabase tag="v1b"/>
</changeSet>

关于liquibase - 使用 Liquibase 上下文有条件地激活/停用更改集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29438132/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com