Repolode
k1LoW

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. 1

    通过 Homebrew 安装

    brew install tbls
  2. 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 数据每日更新。

相关项目