我们执行数据库发布,这些发布由一组更改集组成,我们的数据库更改日志按以下方式组织
MasterChangeLog.xml
---> Release0001.XML
---> AddCustomerTable.XML
---> AddOrderTable.XML
---> Release0002.XML
---> AddNewColumnsToCustomerTable.XML
---> AlterOrderTableXML
---> Release0003.XML
---> AddPreferedCustomerTable.XML
Run Code Online (Sandbox Code Playgroud)
我想知道如何回滚一组变更集.我希望我可以将tagDatabase与版本号(Release001,Release002或Release003)一起使用,然后使用标签回滚
如果我想将所有更改回滚到Release001,我希望能够做到这样的事情
java -jar "liquibase.jar" --changeLogFile="MasterChangeLog.xml" Rollback "Release0002"
Run Code Online (Sandbox Code Playgroud)
你能告诉我如何让它与Liquibase一起工作吗?
谢谢
如果Release002是有效标记,则列出的命令有效.但是,您可能不希望/需要引用Release0002标记.
当使用标签回滚时,liquibase将在执行的变更集的末尾开始,并以相反的顺序回滚每个变量集,直到它到达之前标记的变更集.我不确定你的描述是否是你想要的.
在您的示例中,如果在Realease002.xml运行后标记数据库,则运行"rollback Release0002"将回滚Release0003中的所有内容.如果要回滚Release0002中的所有内容,则需要在执行Release0002更改集之前运行"回滚Release0001"或生成Release0002标记.但是,无论哪种方式,您都会将Release0003回滚,因为它是在Release0002之后发布的.
liquibase不支持选择和选择changeSets回滚的原因是因为变更集之间经常存在依赖关系,因为它们通常相互构建,因此在中间回滚任意一组变更集通常会产生意想不到的后果.
| 归档时间: |
|
| 查看次数: |
11785 次 |
| 最近记录: |