10分钟跑通数据库字典导出:手把手从连接数据库到生成CHM文档
【免费下载链接】DBCHMDBCHM修改版本,支持导出数据库字典分组 The modified version of dbchm supports exporting database dictionary groups ( chm/word/markdown/html)项目地址: https://gitcode.com/gh_mirrors/db/DBCHM
接手一个老项目,同事问"account 表里 CurBalanceAmount 字段存的是什么",你翻遍代码仓库也没找到表结构文档。DBCHM 解决的就是这个问题:连接数据库,勾选你要的表,一键导出带字段备注的数据库字典文档。
先花30秒认清它
| 项目 | 说明 |
|---|---|
| 定位 | 图形化数据库文档生成工具,把表结构、字段类型、备注导出成规范文档 |
| 输出格式 | CHM、Word、Excel、PDF、Html、XML 共 6 种 |
| 支持数据库 | SQL Server、MySQL、Oracle、PostgreSQL、DB2、SQLite |
| 运行平台 | Windows(.NET Framework 4.8,双击 exe 即可运行) |
| 适合人群 | 需要交付/维护数据库字典的开发者、DBA |
本仓库是 DBCHM 的修改版本,额外支持导出数据库字典分组,即把表按业务模块归类到同一目录下。
动手前
- 克隆仓库:
git clone https://gitcode.com/gh_mirrors/db/DBCHM- 关键目录速览:
DBChm/:主程序,含界面代码和连接配置样例DBChm/MySql_dbchm_config.iniDocTools/:文档生成核心,按格式输出DocTools/TplFile/:CHM、Html 等格式的模板文件,改样式用MJTop.Data/:各数据库的连接与元数据读取层
- 运行前提:装好 .NET Framework 4.8 的 Windows 机器,目标数据库可网络访问,数据库账号有查询元数据权限。
一次完整的实操
第1步:配置数据库连接
启动 DBChm 后,点击工具栏左侧的数据连接按钮,弹出"数据库连接配置"窗口。顶部下拉框选择数据库类型(如 SQL Server),下方列表会显示你保存过的连接。新增或编辑一条连接,填写主机、端口、用户名、密码,点连接测试;测试通过后,窗口中央会显示"正在查询表结构信息,请耐心等待"的加载动画,随后右侧出现可选的数据库下拉列表。
图1:数据连接窗口——选择库类型、填写连接信息、测试并选择目标数据库
注意这一步:连接只影响"能查到什么表",不影响后面导出什么内容。确认目标库已选中后,点保存关闭连接窗口。
第2步:筛选并勾选目标表
主界面左侧是表清单,顶部"查询"框支持表名模糊搜索。输入accv,列表立即过滤出所有匹配的表(如 Account、AccountInfo、EnrollAccount 等)。
图2:表名模糊搜索界面——输入关键字过滤表,右侧可查看和编辑表批注、列批注
此时右侧"列批注"区显示选中表的字段列表。如果某些字段缺少备注,直接在"列批注"列里补上(如给 AccountName 填"账户名称"),点保存固化下来——这些备注会原样写进导出文档。勾选你想导出的表:单张表点前面的复选框,全部要就点"全选",排除临时表就点"反选"再逐个勾选,"过滤"框还能按关键字隐藏表。
第3步:选定格式并导出
表选好后,点工具栏的CHM导出。程序会弹出"另存为文件"对话框,选择保存目录,文件名如订单库_结构信息.chm,保存类型保持.chm,点保存。
图3:CHM导出文件保存界面——选择导出格式为.chm并指定保存路径
主界面底部随即出现进度条,右侧状态区滚动显示每张表的生成过程。表多的库需要等一两分钟,看到操作已完成!即导出成功。
图4:导出执行进度界面——底部进度条显示生成状况,完成后提示操作已完成
其余格式同理:点Word导出、Excel导出、PDF导出、Html导出、XML导出按钮,各自弹出保存对话框即可。
拿到文档后怎么看
双击生成的 .chm 文件,用 Windows 内置帮助查看器打开:
图5:生成的CHM数据库字典文档——左侧目录树按分组展开,右侧显示表字段详情
左侧"目录树"列出全部表,若配置了分组,表会收在对应分组节点下;顶部"搜索"框支持按表名或表注释查找。定位某张表的字段只需两步:点目录树里的表名,右侧即显示序号、列名、数据类型、长度、主键、默认值、列说明;点击某一行,该行高亮。30 秒内你就能看到"这个字段是什么类型、允不允许空、备注写了什么"。
让它更快更好看
- 按业务模块分组:数据库字典分组是修改版的核心能力。在
DBChm/下新建一个 ini 配置文件,格式参考DBChm/MySql_dbchm_config.ini:[config]下type=1表示表名匹配,后面每个方括号(如[订单信息])是一个分组,组下列出表名。场景:订单、支付、用户表混在一个库里 → 主界面点加载配置选择该 ini,导出后目录树按分组展开。 - 改文档样式:CHM 和 Html 用模板渲染,场景:公司要求文档页眉带项目名 → 编辑
DocTools/TplFile/chm/下的table.cshtml、list.cshtml等模板文件,重编译 DocTools 项目。 - 批量导出:把库里要交付的表一次性全选,连点几个导出按钮,CHM、Word、Excel 各出一份。
- 连接配置保存:连接测试成功后,工具会把该连接存进本地配置,下次启动直接出现在连接列表里,不用再填主机和账号。
避坑记录
- 点连接后一直转圈:先确认数据库服务已启动、端口没被防火墙拦,再用命令行客户端(如 sqlplus、mysql)验证同一组账号密码能登录;工具连接超时默认 30 秒,慢网络可在连接里调大。
- Oracle 报 ORA-28040 认证失败:这是客户端认证版本不匹配。到数据库服务器改
$ORACLE_HOME/network/admin/sqlnet.ora,把SQLNET.ALLOWED_LOGON_VERSION_SERVER和_CLIENT都设为 8,再重启监听。参考图:
图6:ORA-28040 排查——修改 sqlnet.ora 的认证版本配置
- 导出的表比预期少:检查是否只勾了搜索框过滤后的表、"过滤"框里是否残留了关键字(如
copy,bak),清空过滤条件重新勾选。 - 备注没进文档:列批注编辑后必须点保存按钮才生效,仅输入不保存不会写进导出结果。
DBCHM 的价值在于把"表结构 + 字段备注"这件事从口头交接变成一份可分发的文件。建议把"表结构变更提交前,先跑一遍导出"写进你的开发 checklist,下次同事再问字段含义时,直接甩文档。
【免费下载链接】DBCHMDBCHM修改版本,支持导出数据库字典分组 The modified version of dbchm supports exporting database dictionary groups ( chm/word/markdown/html)项目地址: https://gitcode.com/gh_mirrors/db/DBCHM
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考