You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Liquibase中执行回滚操作时,相关运行日志及回滚历史可在哪里查询?

Liquibase 回滚操作历史查询渠道

Liquibase 的 DATABASECHANGELOG 表默认仅存储当前已生效、未被回滚的 changeSet 记录,回滚操作执行后会直接删除对应 changeSet 的记录,不会在该表中留存历史,你可以从以下几个渠道查询回滚操作的相关日志:

1. Liquibase 执行日志

  • 执行 rollbackCount 等回滚命令时,控制台默认会输出完整的回滚操作明细,包括被回滚的 changeSet ID、作者、变更内容、执行时间、执行结果。如果你执行命令时开启了日志持久化,可直接查询对应的日志文件:
    • 可以通过启动参数 liquibase.logFile=指定日志文件路径 配置 Liquibase 自动将所有操作(含 update、rollback 等所有命令)的全量日志写入指定文件,该日志不会随回滚操作被删除,会永久留存所有操作记录。

2. 数据库层面操作记录

如果你的 Oracle 数据库开启了对应的审计或闪回功能,可从数据库侧追溯回滚操作:

  • 闪回查询:如果回滚操作发生的时间仍在闪回查询窗口期,可直接查询 DATABASECHANGELOG 表的历史数据,找回被删除的 changeSet 记录,示例命令如下:
    SELECT * FROM DATABASECHANGELOG 
    AS OF TIMESTAMP TO_TIMESTAMP('回滚操作的大致时间', 'YYYY-MM-DD HH24:MI:SS');
    
  • 审计日志:如果数据库开启了 AUDIT 审计功能,可查询 DBA_AUDIT_TRAIL 视图,筛选对 DATABASECHANGELOG 表执行 DELETE 操作的记录,获取回滚操作的执行时间、操作用户等信息。

3. 自定义审计表(可选配置方案)

如果需要后续自动留存所有变更(含回滚)的历史记录,可自行配置针对 DATABASECHANGELOG 表的 DELETE 触发器,每次有记录被删除(即触发回滚)时,自动将被删除的 changeSet 信息、操作时间、操作人等字段写入自定义的变更历史审计表中,后续可直接查询该审计表获取全量变更和回滚历史。


内容的提问来源于stack exchange,提问作者Qabany

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 01:27:04