我在带有 liquibase-maven-plugin 的 java ee 项目中使用工具 liquibase 进行数据库更改。到目前为止,我在本地机器上进行了尝试,但需要在生产中进行下一步。
本地我可以进行更新、回滚、将标签作为一种检查点和替换备份。更新已经完全自动化。它在项目运行之前执行:
<plugin>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-maven-plugin</artifactId>
<version>2.0.5</version>
<configuration>
..
</configuration>
<executions>
<execution>
<phase>process-resources</phase>
<goals>
<goal>update</goal>
</goals>
</execution>
</executions>
</plugin>
我可以进行回滚并将标签放在命令行中,例如:
mvn liquibase:tag -Dliquibase.tag=release1
mvn liquibase:rollback -Dliquibase.rollbackTag=release1
在生产服务器上,我希望一切都完全自动化。当部署失败并且我需要返回项目的原始版本时,我主要对 db-rollbacks 感兴趣。
设置标签应该像如何在 liquibase 中将变更集标记为回滚中所述那样工作。
但是如何完全自动化地管理回滚呢?
- 是否也可以制定回滚目标?如果是:我如何控制它的执行时间?我不想在项目中意外创建一个循环,调用更新和回滚无穷无尽。
通常的做法是:backup1、update、run。如果失败,您将返回备份 1。这是自动可能的吗?恐怕一旦发生故障(在运行项目时),您将无法再自动执行回滚。