Java 回滚问题-液化

Java 回滚问题-液化,java,spring,maven,liquibase,jhipster,Java,Spring,Maven,Liquibase,Jhipster,我正在尝试通过终端执行一些回滚功能。我在JHipster项目中使用Maven和Liquibase 我正在尝试标记数据库版本,并在某个时候按标记回滚特定的版本。这是我的liquibase配置文件(master-databasechangelog): …(一些改变表格、加载数据等的更改集)。。。 新的变更日志文件如下所示: <changeSet id="20170123151950" author="jhipster"> <addColumn tableName="so

我正在尝试通过终端执行一些回滚功能。我在JHipster项目中使用Maven和Liquibase

我正在尝试标记数据库版本,并在某个时候按标记回滚特定的版本。这是我的liquibase配置文件(master-databasechangelog):

…(一些改变表格、加载数据等的更改集)。。。
新的变更日志文件如下所示:

<changeSet id="20170123151950" author="jhipster">

    <addColumn tableName="sometable">
        <column name="somecolumn" type="varchar(32)"/>
    </addColumn>

</changeSet>  

我试过命令:

mvn liquibase:rollback-Dliquibase.rollbackTag=version\u 1\u 0

mvn liquibase:rollbackql-Dliquibase.rollbackTag=version\u 1\u 0

但什么也没发生

有人知道如何回滚到以前版本的数据库吗


提前谢谢你

必须将回滚命令添加到变更集: 例如:

<rollback>
           <dropColumn 
            columnName="somecolumn"
            tableName="sometable"/>
        </rollback>

我遇到了类似的问题,我的changelogFile使用include标记导入其他变更日志

我发现,当数据库更改日志上的文件名列与脚本回滚发生的文件名不匹配时,它会自动失败


我在liquibase 3.5.3版上运行,并通过maven运行回滚

您的maven命令看起来是正确的。databasechangelog表是什么样子的?它是否有您在标记之前、标记之后和标记之后所做更改的条目?值得注意的是,回滚并不总是开箱即用,在某些情况下,您可能必须在变更集中指定。但是对于您的案例(addColumn),它应该自动工作,而不指定()my databasechangelog表有三行。第一个用于创建表,第二个用于将数据库标记为1.0版,第三个用于添加新列?运行maven命令时得到的输出是什么?尝试详细输出。此外,还值得尝试一些方法,例如使用
rollbackCount
而不是
rollbackTag
,或者使用显式回滚变更集(示例如下:)Maven版本为:3.3.9;Liquibase版本为:3.4.2;我已经尝试过rollbackCount,它只是输出构建成功,但数据库什么也没发生。rollbackTag也是如此。真奇怪,看起来是最近的事。值得尝试maven versbose option
-X
来查看场景背后发生了什么您在maven插件配置中尝试过标记吗?这是我的maven liquibase插件配置:一切似乎都正常,您是否尝试过查看回滚计数是否有效?在回滚之后,在重新运行代码之前,请检查数据库是否已更改。很抱歉,我无法帮助morerollbackCount也无法工作:(并且数据库中没有发生任何事情)。
<rollback>
           <dropColumn 
            columnName="somecolumn"
            tableName="sometable"/>
        </rollback>