如何告诉Liquibase忽略db.changelog * .xml?

时间:2017-10-27 20:01:06

标签: unit-testing liquibase

如果在DEV环境中创建数据库,我希望liquibase只创建一组单元测试函数。

我知道我可以为每个单元测试函数创建一个带有“context”属性的“changeset”标签,但是如果可能的话我想避免这种情况。

将“context”与“includeAll”标记一起使用是理想的,例如:

<includeAll path="./sql/UnitTest/" context="dev" />

但遗憾的是,这不受支持。

或者因为我有几个更改日志:

db.changelog.xml
   include db.changelog-tables.xml
   include db.changelog-functions.xml
   ...
   include db.changelog-unit_test_functions.xml

如果我能告诉LiquiBase根据一个也可以运行的命令行参数跳过运行“db.changelog-unit_test_functions.xml”。

但是,“include”元素中不允许使用“context”属性。

<include file="./sql/db.changelog-unit-test.xml" context="dev" />

我尝试将“preconditions”测试附加到db.changelog-unit-test.xml,但是无法执行所有db.changelogs。

有没有人对如何避免编写粒度db.changelog-unit-test.xml有任何聪明的想法?

谢谢!

1 个答案:

答案 0 :(得分:0)

includeincludeAll中的上下文从3.5开始工作 请注意您文件中的xsd定义-您需要在那里租用http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.5.xsd,否则即使运行3.5或更高版本,文件也不会得到验证。