Liquibase sql格式文件中的多个上下文

时间:2015-10-29 11:22:45

标签: liquibase

我试图在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。

4 个答案:

答案 0 :(得分:0)

您是否尝试在运行时指定上下文?

--contexts="new-db and edb"

答案 1 :(得分:0)

-- changeset istepniak:db-1.14.1 context:dev and test

这对我有用

答案 2 :(得分:0)

如果您要在devtest这两个上下文中执行更改集,则可能要使用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)”

较新的版本带有可用于复杂业务案例的标签。