☰
DBeaver 数据字典生成与文档自动化指南
2026/10/26 22:05:51 网站建设 项目流程

DBeaver 数据字典生成与文档自动化指南

【免费下载链接】dbeaverFree universal database tool and SQL client项目地址: https://gitcode.com/GitHub_Trending/db/dbeaver

周五下午,甲方催要数据库文档,两百多张表躺在库里,谁也不会一行行手抄。这时候 DBeaver 数据字典能力最省事:结构直接从元数据里导出来,改完表结构重跑一遍就是最新版。下面是这套流程的实战笔记。

一分钟跑通:从连库到 Markdown 文件的最短路径

先让读者拿到结果。最短路径四步:

  1. Database Navigator 里右键连接节点(或具体的表节点),选「导出数据」;
  2. 格式下拉里选 Markdown,确认输出目录;
  3. 在对象选择步骤勾选要导出的表,下一步;
  4. 点完成,目标目录里会落出一个.md文件。

五种格式的导出器实现都在 plugins/org.jkiss.dbeaver.data.transfer/ 插件里,MarkdownTable、HTML、JSON、CSV、XML各有对应类,想改输出行为可以直接从这里入手。

导出格式怎么选:一张决策表定格式

你的目的选它说明
文档进仓库、给同事查Markdown进版本控制,diff 干净,wiki 直接渲染
交付客户或内部知识库HTML自带样式,浏览器打开即可读
程序消费、二次加工JSON结构化,脚本好解析
运营/分析同学自己统计CSVExcel 直接打开,零成本
系统间交换、老集成XML标签化,老系统吃得下

原则很简单:人读选 Markdown/HTML,机器读选 JSON/CSV/XML。拿不准就先 Markdown,改库结构后重导一次,git diff 就是字段级变更日志。

从单表到整库:三种导出粒度怎么配

  • 单表:右键表节点走同一个「导出数据」,产物只含这张表的字段、类型、约束、默认值和注释。
  • 库级:右键连接节点,对象选择步骤选整库,勾选「包含视图和同义词」,表、视图、索引、外键一次出全。
  • 过程对象:存储过程不在数据导出范围,对过程节点选「导出 DDL」,拿到 CREATE 语句再和前面拼进同一份文档。

CLI 下三种粒度是同一套参数,对象范围不同而已:

dbeaver -console \ -driver mysql -url jdbc:mysql://10.0.0.8:3306 \ -user doc -password "$DB_PASS" \ -command "export-database \ --format markdown \ --output docs/dbdict \ --tables \"*\" \ --include-views --include-procedures"

用 CLI 和 CI 让数据库文档自动生成

上面命令在开发机、脚本、runner 里行为一致,所以数据库文档自动生成基本就是「命令 + 定时器」两件事。最短的 CI 骨架:

jobs: dbdict: runs-on: ubuntu-latest steps: - run: | tar -xzf dbeaver-ce-linux.tar.gz ./dbeaver/dbeaver -console -command "export-database --format markdown --output docs/dbdict" - uses: actions/checkout@v3 with: path: docs-repo ref: gh-pages - run: cp -r docs/dbdict docs-repo/ && cd docs-repo && git add -A && git commit -m "auto dict $(date +%F)" && git push

要点只有一个:runner 是无状态环境,连接串和密码从 secrets 取,产物推到单独的 docs 分支。无人值守跑批时,DBeaver 的 headless 支持在 plugins/org.jkiss.dbeaver.headless/ 插件里,参数细节以你安装的版本--help为准,别照抄博客。

文档没告诉你的 3 个坑:乱码、慢导出与模板路径

  • 坑1:中文注释导出成乱码。原因是字符集没显式声明,控制台按默认编码解析。解法:导出命令加--encoding UTF-8,老版本则用 JVM 参数-Dfile.encoding=UTF-8跑。
  • 坑2:大库导出慢到像挂死。元数据是逐对象查的,串行且走网络往返,几百张表要等几分钟。解法:低峰期跑,或按 schema 拆成几批并行导出,别在白天高峰期触发。
  • 坑3:模板路径找不到。CI 里工作目录和开发机不同,相对路径直接失效。解法:模板和输出都用绝对路径,先在 runner 里echo $PWD确认工作目录再改。

顺带一提,界面文案的中文本地化在 plugins/org.jkiss.dbeaver.data.transfer/OSGI-INF/l10n/bundle_zh.properties,导出向导看不懂某个选项名时可以对照着查。

明天就能动手的 3 件事

  1. 挑一张被问得最多的表,走一遍导出向导生成 Markdown,贴进 wiki,顺手把缺失的字段注释补上。
  2. 把库级导出命令写成一个 shell 脚本,挂 crontab 或 CI 定时任务,让文档每天凌晨自己更新。
  3. 用 JSON 格式多导一份,接进内部的元数据服务,后续做字段变更告警就有现成的结构化输入。

【免费下载链接】dbeaverFree universal database tool and SQL client项目地址: https://gitcode.com/GitHub_Trending/db/dbeaver

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询