从数据库结构自动生成可交互、易读的 ER 图,支持网址直接生成或使用 CLI。
k1LoW/tbls
一款用 Go 编写的命令行工具,可从数据库结构自动生成 Markdown 文档,并支持差异比对、规则检查与 ER 图生成,适合集成到 CI 中。
- Star
- 4,364
- Fork
- 217
- 未关闭 Issue
- 57
- 最近提交
- 8天前
这是什么?
tbls 连接数据库并读取其结构,生成可在 GitHub 上直接浏览的 Markdown 文档,包含表、字段、索引、约束和关联关系。它还能生成 SVG、PNG、JPG 或 Mermaid 格式的 ER 图,并导出 DOT、PlantUML、JSON、YAML、Excel 等格式。
除了生成文档,tbls 还可以检查数据库结构。diff 命令可将实际数据库与已生成的文档或另一个数据库进行比对;lint 命令可按配置检查字段注释是否缺失、字段数量是否超限、外键是否建立索引等规则;coverage 命令则统计文档覆盖率。
tbls 以单个二进制文件发布,支持 PostgreSQL、MySQL、MariaDB、SQLite、SQL Server、BigQuery、Snowflake、Redshift、Cloud Spanner、DynamoDB、MongoDB、ClickHouse、Databricks 等数据源。配置写在 .tbls.yml 中,适合在 CI 流水线里运行。
核心功能
- 01从数据库结构生成适合 GitHub 浏览的 Markdown 文档。
- 02生成 SVG、PNG、JPG 或 Mermaid 格式的 ER 图。
- 03比对数据库与文档,或比对两个数据库之间的差异。
- 04通过可配置规则检查结构,如字段注释、字段数量上限等。
- 05统计表和字段的文档覆盖率。
- 06支持 PostgreSQL、MySQL、SQLite、BigQuery、MongoDB 等多种数据源。
适用场景
- 在代码仓库中维护数据库结构文档,并随代码变更同步更新。
- 在 CI 中检测结构变更是否导致文档或规则检查失败。
- 比对生产环境与测试或本地数据库的结构差异。
- 将表结构导出为 Excel 或 PlantUML,便于与非开发人员评审。
快速上手
- 1
通过 Homebrew 安装
brew install tbls - 2
使用一条命令为数据库生成文档
tbls doc postgres://dbuser:dbpass@hostname:5432/dbname
使用前须知
- 需要能够连接到目标数据库并拥有相应凭据,因为它基于实时数据库结构生成文档。
收录于专题
标签
常见问题
- tbls 是什么?
- 一款用 Go 编写的命令行工具,可从数据库结构自动生成 Markdown 文档,并支持差异比对、规则检查与 ER 图生成,适合集成到 CI 中。 tbls 连接数据库并读取其结构,生成可在 GitHub 上直接浏览的 Markdown 文档,包含表、字段、索引、约束和关联关系。它还能生成 SVG、PNG、JPG 或 Mermaid 格式的 ER 图,并导出 DOT、PlantUML、JSON、YAML、Excel 等格式。
- tbls 可以免费使用吗?用的什么许可证?
- tbls 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
- tbls 还在维护吗?
- 活跃维护中。tbls 最近一次提交是在 2026年10月15日。
- tbls 适合用来做什么?
- 在代码仓库中维护数据库结构文档,并随代码变更同步更新。 在 CI 中检测结构变更是否导致文档或规则检查失败。 比对生产环境与测试或本地数据库的结构差异。 将表结构导出为 Excel 或 PlantUML,便于与非开发人员评审。
- tbls 怎么安装和运行?
- 通过 Homebrew 安装: brew install tbls 使用一条命令为数据库生成文档: tbls doc postgres://dbuser:dbpass@hostname:5432/dbname
- 在哪里获取 tbls?
- 源代码和安装说明在 GitHub 上:https://github.com/k1LoW/tbls
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
一款无需构建过程、可将 Markdown 文件直接转为文档网站的工具。
一个以单一二进制文件分发的静态站点生成器,内置 Markdown、Sass、图片处理和搜索功能。
基于 reStructuredText 的 Python 文档生成工具,可输出 HTML、PDF、EPUB 等多种格式。
基于 Hugo 与 Tailwind 的开源建站框架,用纯 Markdown 文件搭建落地页、作品集、博客和文档。
一款命令行工具,用一条命令即可在数据库、文件和 SaaS 平台之间复制数据,无需编写代码。