没有changelog文件,Liquibase无法回滚。在运行回滚时,需要提供原始的changelog/changesets文件。
我的问题是:有没有办法在没有文件的情况下运行回滚?
例如:将文件(或回滚命令)存储在数据库commands表中?
发布于 2015-04-16 12:53:13
您可以使用Liquibase的"Future Rollback SQL“特性。它以几种不同的方式暴露出来。
Java API
Liquibase.futureRollbackSQL(...)Spring Integration
SpringLiquibase.setRollbackFile(...)Maven Integration
mvn liquibase:futureRollbackSQLAnt Integration
<liquibase:rollbackFutureDatabase outputfile="/path/to/rollback-future.sql".../>Command Line
liquibase futureRollbackSQL如果您将此功能与update或updateSQL结合使用,那么您将能够回滚更新,而无需原始更改日志。
发布于 2015-04-16 00:56:43
据我所知,liquibase从变更集动态地生成回滚命令(在可能的情况下)。
因此,它将始终需要changelog文件来执行此操作。
我不认为有一个简单的解决方案来做到这一点。liquibase的全部意义在于将变更集保存在单独的文件中,这样您就可以将它们放入某种版本控制系统中。
https://stackoverflow.com/questions/29608169
复制相似问题