java - 回滚问题 - Liquibase

标签 java spring maven liquibase jhipster

我正在尝试通过终端执行一些回滚功能。我在 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/

相关文章:

java - 如何有效地将 TreeSet 的一部分保存到文件中?并重新加载它? (Java问题)

java - 如何使用递归函数代替嵌套循环?

java - 项目开始前的jbpm问题

java - maven 3.0+ 在 'mvn deploy' 上跳过插件执行

java - ActionListener 不执行任何操作

java - 为什么 HttpURLConnection 不发送数据,除非我尝试接收一些东西

java - 在Spring中使用ClientHttpRequestInterceptor时如何中止请求?

java - 使用 Keycloak 保护 Spring Cloud 网关

java - 在 Tomcat 8 上获取运行本地 Spring Boot 应用程序的 404

java - 如何强制 Maven 在站点生命周期之前运行构建生命周期?