在没有更改日志文件的情况下运行liquibase rollback?

时间:2015-04-13 14:41:48

标签: liquibase

如果没有changelog文件,Liquibase将无法回滚。 它需要在运行回滚时提供原始的changelogs / changesets文件。

我的问题是:有没有办法在没有文件的情况下运行回滚?

例如:将文件(或回滚命令)存储在databasechangelog表中?

2 个答案:

答案 0 :(得分:1)

您可以使用Liquibase的“Future Rollback SQL”功能。它以几种不同的方式暴露出来。

Java API

Liquibase.futureRollbackSQL(...)

Spring Integration

SpringLiquibase.setRollbackFile(...)

Maven Integration

 mvn liquibase:futureRollbackSQL

Ant Integration

<liquibase:rollbackFutureDatabase outputfile="/path/to/rollback-future.sql".../>

Command Line

liquibase futureRollbackSQL

如果您将此功能与update或updateSQL结合使用,那么您将能够在没有原始更改日志的情况下回滚更新。

答案 1 :(得分:0)

据我所知,liquibase会从更改集中动态生成回滚命令(在可能的情况下)。

因此,总是需要changelog文件来执行此操作。

我不认为有一个简单的解决方案可以做到这一点。 liquibase的重点是将变更集保存在单独的文件中,因此您可以将它们放在某种版本控制系统中。