我如何回滚其他上下文的变更集?

How can I rollback changesets of other context?

我有两个 liquibase 上下文 - master 和 test。 在测试上下文中,有向数据库插入测试数据。 如果我 运行 测试,所有变更集都在使用。 如果我 运行 应用程序,只有主变更集正在使用。

但是如果我在测试后 运行 应用程序,我可以看到数据库中的所有数据(主数据和测试数据)。 当我 运行 app.

时,我想自动回滚测试变更集

我该怎么做?

您可以使用 liquibase Rollback 命令在 运行 应用程序之前撤消测试上下文的更改集。

可以使用命令行实用程序、Ant 或 Maven 执行回滚或任何其他 Liquibase 命令。

查看使用 Rollback Maven Goal 的示例:

mvn liquibase:rollback 
-Dliquibase.properties=./project.properties 
-Dliquibase.rollbackDate=2016-01-01 
-Dliquibase.contexts=test

在本例中,我使用了回滚日期模式。它将回滚 2016 年 1 月 1 日之后执行的属于名为 test 的上下文的所有变更集。