我正在尝试在Liquibase中使用多个上下文支持,但我无法实现结果。我的 SQL 格式变更集如下所示
--changeset bkolasa:1 context:new-db and !edb dbms:postgresql
然后当我执行命令时
java -jar liquibase.jar --contexts=new-db,edb --driver=org.postgresql.Driver --url=jdbc:postgresql://example.com:5432/liqtest?ssl=true&sslfactory=org.postgresql.ssl.NonValidatingFactory --username=liqtest --password=liqtest --changeLogFile=mychangelog.sql update
变更集仍处于加载状态。
我的Liquibase版本是3.2.2。
-- changeset istepniak:db-1.14.1 context:dev and test
这对我有用
–context=dev,qa
对我有用。在 Liquibase 3.2 中,添加了对 changeSet 中上下文表达式的支持。示例:context=”qa or (dev and release)”
较新的版本具有可用于复杂业务案例的标签。
您是否尝试过在运行时指定上下文,如下所示?
--contexts="new-db and edb"
两个上下文中执行更改集,即dev
和test
,您可能希望使用or
而不是and
:
-
or
只需要其中一个上下文。 -
and
需要所有上下文。
例如,以下更改集将应用于dev
上下文,也将应用于test
上下文:
-- changeset istepniak:db-1.14.1 context:dev or test
相反,以下更改集需要同时存在这两个上下文:
-- changeset istepniak:db-1.14.1 context:dev and oracle