DBeaver不支持一键导出结构对比报告,需通过开发者工具复制渲染后的完整HTML(含style/script)保存为文件;自动化需改用pg_dump/diff或SQL查INFORMATION_SCHEMA等外部方案。

直接导出结构对比结果,DBeaver 本身不支持一键保存为文件——它只在 UI 中渲染 HTML 报告,但你可以手动保存或用浏览器另存为。
Simple Structure Compare 的报告只能在浏览器里看
执行 Compare/Migrate → Simple Structure Compare 后,DBeaver 弹出的是内嵌浏览器页(基于 Eclipse SWT Browser),内容是动态生成的 HTML 表格。这个页面没有“导出为 PDF/HTML”按钮,也没有右键另存选项(某些 Linux 或旧版 JDK 下右键菜单被禁用)。
- 差异项标蓝、缺失对象标红,视觉上很清晰,但无法直接导出
- 报告依赖 DBeaver 运行时上下文,关掉窗口后数据就丢了
- 如果你点了 “Save as HTML”,实际保存的是空壳页面(无样式、无表格数据),因为 JS 和内联 CSS 是运行时注入的
绕过限制:用浏览器开发者工具抓取完整 HTML
只要报告页面能正常加载,就能把真实内容抠出来。关键不是“另存”,而是“复制渲染后的 DOM”。
- Windows/Linux:按
F12打开开发者工具 → 切到Elements标签页 → 找到最外层节点 → 右键 →Copy → Copy outerHTML - macOS:
Cmd+Opt+I→ 同样操作 - 粘贴到文本编辑器,保存为
compare-report.html,用 Chrome/Firefox 打开即还原原貌 - 注意:别漏掉
<style></style>和<script></script>块,它们控制着红蓝高亮逻辑
想自动化?得换思路:用 CLI 或 SQL 拉元数据自己比
DBeaver 的 GUI 对比不暴露 API,也没提供命令行入口。真要批量导出结构差异,得跳出它:
- 对 PostgreSQL:用
pg_dump --schema-only导出两个库的 DDL,再用diff命令比对 - 对 MySQL:查
INFORMATION_SCHEMA,比如SELECT table_name, column_name, data_type FROM INFORMATION_SCHEMA.COLUMNS WHERE table_schema = 'dev',导出 CSV 后用 Python pandas merge 对比 - 别指望 DBeaver 插件输出 JSON ——
org.jkiss.dbeaver.cmp.simple模块没开放序列化接口,所有对比逻辑都锁死在 UI 层
真正卡住人的从来不是“怎么打开对比”,而是“怎么让这份报告离开 DBeaver”。它是个展示工具,不是交付工具——红蓝标记看着爽,但拿不到源数据,就得自己动手挖。


















