我试图在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。
答案 0 :(得分:0)
您是否尝试在运行时指定上下文?
--contexts="new-db and edb"
答案 1 :(得分:0)
-- changeset istepniak:db-1.14.1 context:dev and test
这对我有用
答案 2 :(得分:0)
如果您要在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
答案 3 :(得分:0)
–context=dev,qa
为我工作。
使用Liquibase 3.2,增加了对changeSets中上下文表达式的支持。
例如:context=”qa or (dev and release)”
较新的版本带有可用于复杂业务案例的标签。