我正在尝试通过终端执行一些回滚功能。我在 JHipster 项目中使用 Maven 和 Liquibase。
我正在尝试标记数据库版本,并有时按标记对特定版本进行回滚。这是我的 liquibase 配置文件(主 - 数据库更改日志):
...(some change sets that alter tables, load data etc.)...
<!-- Tag database version 1.0 -->
<changeSet id="version1" author="jhipster">
<tagDatabase tag="version_1_0" />
</changeSet>
<!-- Version 1.0 ends here -->
<!-- Version 2.0 starts here -->
<include file="../../config/liquibase/changelog/20170123151950_added_column_to_table.xml" relativeToChangelogFile="true"/>
新的变更日志文件如下所示:
<changeSet id="20170123151950" author="jhipster">
<addColumn tableName="sometable">
<column name="somecolumn" type="varchar(32)"/>
</addColumn>
</changeSet>
我尝试过命令:
mvn liquibase:rollback -Dliquibase.rollbackTag=version_1_0
和
mvn liquibase:rollbackSQL -Dliquibase.rollbackTag=version_1_0
但是什么也没发生。
有人知道如何回滚到以前版本的数据库吗?
提前谢谢您!
最佳答案
我遇到了类似的问题,我的变更日志文件使用 include 标签导入其他变更日志。
我发现,当数据库更改日志上的文件名列与发生脚本回滚的文件名不匹配时,它会默默失败。
我正在 liquibase 版本 3.5.3 上运行,并通过 maven 运行回滚
关于java - 回滚问题 - Liquibase,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41810911/