如何使用Liquibase命令行回滚到特定的更改集

时间:2017-11-27 15:49:20

标签: java spring postgresql maven liquibase

我有两个changeLog文件(changeLog-1.0.1.xml,changeLog-2.0.1.xml)。 每个changeLog文件包含两个changeSet(changeSet-1,changeSet-1) 两者都在app部署时执行。

这是我指定changeSets的方式:

java -jar C:\..\.m2\repository\org\liquibase\liquibase-core\3.5.3\liquibase-core-3.5.3.jar update rollback changeSet-1 --changeLogFile="changeLog-1.0.1.xml"

我想从命令行回滚第二个changeLog文件(changeLog2.xml)。

我尝试了很多方法,但没有成功。

    java -jar C:\Users\someUser\.m2\repository\org\liquibase\liquibase-core\3.5.3\liquibase-core-3.5.3.jar 
--changeLogFile=changeLog.xml 
--labels=labelOne 
--url=jdbc:postgresql://localhost:5432/app2db 
--classpath=C:/postgresql-42.1.4.jar 
--username=app2user 
--password=password 
update

与changeLog文件在同一个目录中

更新:我设法成功从命令行调用更新

    java -jar C:\Users\someUser\.m2\repository\org\liquibase\liquibase-core\3.5.3\liquibase-core-3.5.3.jar 
--changeLogFile=changeLog.xml 
--labels=labelOne 
--url=jdbc:postgresql://localhost:5432/app2db 
--classpath=C:/postgresql-42.1.4.jar 
--username=app2user 
--password=password 
rollback

和回滚

Unexpected error running Liquibase: rollback requires a rollback tag

呼叫与

崩溃
{{1}}

1 个答案:

答案 0 :(得分:2)

我必须先创建一个标签

java -jar C:\path\.m2\repository\org\liquibase\liquibase-core\3.5.3\liquibase-core-3.5.3.jar  
--changeLogFile=changeLog.xml
--url=jdbc:postgresql://localhost:5432/app2db
--classpath=C:/postgresql-42.1.4.jar
--username=app2user
--password=password
tag exampletag

然后回滚到该特定标签

java -jar C:\path\.m2\repository\org\liquibase\liquibase-core\3.5.3\liquibase-core-3.5.3.jar
--changeLogFile=changeLog.xml
--labels=labelOne
--url=jdbc:postgresql://localhost:5432/app2db
--classpath=C:/postgresql-42.1.4.jar
--username=app2user
--password=password
rollback exampletag