前三期我们把自托管、数据备份、终端工具都翻了个遍,这期换个打法:不聊数据库内核、不聊备份容灾,只聊“怎么把数据库用爽”。围绕一条 SQL 工作流,从画架构图、桌面查数、浏览器里嵌一个 Postgres,到改表不停机、命令行一把梭——8 个仓库 8 个方向,几乎不重叠。其中 tern 和 dblab 是千级以下的小而美,体量不大但刀刃极薄。文中 Star 均为撰写时量级约数,实时数据以 GitHub 页面为准。
chartdb/chartdb ⭐⭐⭐
一句话定位:把老数据库“贴”成一张好看的 ER 图。
接手祖传系统最痛的不是写代码,是没人知道库里到底有什么表、外键怎么绕。ChartDB 解决的就是这件事:不用安装客户端连库,把建表 DDL 粘贴进去,秒出一张可拖拽、可导出的数据库关系图。它还有一手“Smart Query",针对 MySQL、Postgres、SQLite、SQL Server、ClickHouse 等不同方言,自动执行一条内置查询把 schema 拉出来,连粘 DDL 都省了。
架构上是纯前端的 React/TypeScript 应用,支持 Docker 自托管,本地运行不需要注册账号,schema 数据不出内网——这一点对银行、政企客户极其友好。图不仅能看,还能反向导出成目标方言的 DDL,等于顺手做了个建模工具。
上手难度:⭐⭐(npm/Docker 起一个就能用)
适用人群:接手遗留系统的工程师、做数据架构评审和方案汇报的人。变现思路:私有化部署 + 团队协作版,或者打包成咨询公司的“数据资产盘点”交付件。
beekeeper-studio/beekeeper-studio ⭐⭐⭐
一句话定位:颜值和体验都在线的跨平台 SQL 桌面客户端。
DBeaver 功能全但界面像 2010 年,Navicat 好用但收费。Beekeeper Studio 卡在中间生态位:Electron + Vue 构建,Windows/macOS/Linux 三端一致,连接 MySQL、Postgres、SQLite、SQL Server、MariaDB 等主流库,带自动补全的标签页编辑器、保存查询、连接历史、数据导出一应俱全。
它更值得独立开发者研究的是商业模式:核心开源,付费版卖高级功能(如多云同步连接配置),养活了一个全职团队——这是“开源核心 + 商业增强”路线跑通的活案例。
上手难度:⭐⭐(下载安装包即用)
适用人群:所有天天查库的后端、数据分析、运营同学。二开方向:公司内部可以基于它定制审计插件,所有查询留痕,替代昂贵的数据库审计网关。
electric-sql/pglite ⭐⭐⭐⭐
一句话定位:把整个 Postgres 塞进浏览器标签页。
PGlite 是 ElectricSQL 团队把真正的 Postgres 编译成 WASM 的产物:一个约 3MB 的文件,在浏览器、Node、Deno、Bun 里直接 new PGlite() 就有一个完整的 Postgres 可用,数据可持久化到 IndexedDB。它不是 SQLite 那样的“类 SQL”,是真 PG 语法、真扩展——连 pgvector 都能在里面跑,浏览器里做向量检索、跑 RAG demo 全都成立。
这正是“本地优先 + AI 应用”浪潮缺的那块底座:应用离线可用、数据在用户手里、代码零后端起步。配合 ElectricSQL 的同步方案,还能把本地库和云端真库做增量同步。
上手难度:⭐⭐⭐(前端开发者半天上手,运维同学需要转变心智)
适用人群:做离线应用、本地 AI 工具、教学 demo 的开发者。商业潜力:本期最高——边缘计算、嵌入式分析、私有化 AI 笔记类产品都可以用它重构架构。
xataio/pgroll ⭐⭐⭐⭐
一句话定位:让“改表结构”不再锁库停机的 Postgres 迁移引擎。
业务量上去之后,给亿级大表加个字段都是事故高发区。pgroll 把业界口口相传的 expand/contract 迁移方法论做成了工具:每次变更分阶段执行——先加新列并后台批量回填,通过视图同时暴露新旧两个版本的 schema,让新旧两版应用并行在线,确认无误后再收缩清理旧列。全程不锁表、可暂停、可软回滚。
它是 Xata 团队用 Go 写的单二进制,迁移文件用 YAML 描述,可进代码评审、可进 CI 流水线,天然贴合 GitOps 工作流。
上手难度:⭐⭐⭐⭐(需要理解视图切换机制,但文档讲得很透)
适用人群:SaaS 团队、7×24 业务的 DBA 和平台工程组。二开方向:封装成公司内部的“改表审批平台”,配合工单系统就是一套数据库变更管控产品。
jackc/tern ⭐⭐⭐
一句话定位:小到极致的 SQL 迁移工具,pgx 作者的顺手之作。
本期第一个“千星以下”小而美。作者 jackc 是 Go 生态事实标准的 Postgres 驱动 pgx 的作者,tern 就是他自己造的迁移轮子:迁移就是普通 .sql 文件,文件头用一段注释声明版本描述,tern migrate 一条命令按序执行,一张表记录当前版本,没了。没有 DSL、没有 GUI、没有学习成本,还支持 Go 模板语法给迁移传参。
和 pgroll 放在一起看非常有意思:一个是把迁移做成分布式系统工程的重武器,一个是“我就想要个 up/down 脚本管理器”的瑞士小刀。中型项目用 tern 完全够了——工具复杂度应该匹配业务复杂度,而不是反过来。
上手难度:⭐⭐(十分钟读完 README 即可上生产)
适用人群:Go 后端、个人项目、讨厌 ORM 迁移 DSL 的 SQL 原教旨主义者。二开方向:给 tern 包一层 Web 面板,就是小团队的迁移管理台。
xo/usql ⭐⭐⭐
一句话定位:数据库世界的“万能充电头”,一个二进制连所有库。
服务器上只有 psql 但你要连 MySQL?跳板机没有客户端?usql 把 psql 的交互体验(\dt、\d 这套斜杠命令)带到了几十种数据库上:Postgres、MySQL、SQLite、SQL Server、Oracle、ClickHouse……全部由 Go 驱动编译进单个二进制,usql pg://user:pass@host/db 直接开聊。写运维脚本时尤其香:一份 bash 脚本通吃异构数据源,不用为每种库装一套客户端。
它出自 Go 代码生成领域的老牌作者 ken thompson……不对,是 kenshaw(Xo 项目作者),代码质量和驱动覆盖都经过多年打磨。
上手难度:⭐⭐⭐(熟悉 psql 的几乎零成本)
适用人群:运维、SRE、手里管着七八种数据库的后台工程师。二开方向:打进公司统一跳板机镜像,作为标准运维组件分发。
一句话定位:终端里的 SQL IDE,好看得不像命令行工具。
Harlequin 用 Python 的 Textual 框架搭了个全键盘操作的 TUI:左边数据库目录树,右上查询编辑器,下方结果表格,还能开多个查询结果页签。内置 DuckDB 和 SQLite 适配器,装个 extra 就能连 Postgres、MySQL。uvx harlequin 一条命令启动,配合 DuckDB 直接查询本地 CSV/Parquet 文件,数据分析师不写 Python 也能玩转文件数据。
它是“终端复兴”浪潮里的代表性应用——证明了 TUI 不只是极客情怀,在 SSH 远程开发、低配服务器这些场景里,比 Electron 客户端实用得多。
上手难度:⭐⭐(pip 装完即用,快捷键要记半天)
适用人群:分析师、DuckDB 用户、终端原教旨主义者。二开方向:写自定义 adapter 接内部数据仓库,做一套公司标准的终端取数工具。
danvergara/dblab ⭐⭐⭐
一句话定位:本期第二个小而美——只为“快速瞄一眼线上表”而生的终端客户端。
dblab 的哲学是快:单个 Go 二进制,go install 完事,启动直接列出库里的表,方向键浏览结构、回车看数据、随手执行 SQL,全程不碰鼠标。对比动辄几百 MB 的桌面客户端,它和 Harlequin 走的是同一终端路线,但砍掉了 IDE 的一切野心,只留“浏览+查询”这一个动作,所以冷启动几乎零负担。支持 Postgres、MySQL、SQLite,连 SSH 隧道和 Docker 容器场景都考虑到了。
Star 数长期在千级徘徊,但 issue 区响应积极,是那种“用上就回不去”的典型。
上手难度:⭐⭐
适用人群:经常 SSH 到生产服务器救火的工程师。二开方向:定制成只读版本,发放给需要查数但不应有写权限的业务同事。
| 仓库 | 方向 | Star 量级* | 上手难度 | 一句话场景 |
|---|---|---|---|---|
| ChartDB | 可视化建模 | 万级 | ⭐⭐ | 老库秒出 ER 图 |
| Beekeeper Studio | 桌面客户端 | 万级 | ⭐⭐ | 日常查数主力 |
| PGlite | 嵌入式 WASM | 万级 | ⭐⭐⭐⭐ | 浏览器里跑真 Postgres |
| pgroll | 零停机迁移 | 数千 | ⭐⭐⭐⭐ | 大表改结构不停机 |
| tern | 极简迁移 | 数百 | ⭐⭐ | 小项目的版本管理 |
| usql | 通用 CLI | 近万 | ⭐⭐⭐ | 一个二进制连所有库 |
| Harlequin | 终端 IDE | 数千 | ⭐⭐ | 终端里写 SQL 分析 |
| dblab | 轻量 TUI | 千级 | ⭐⭐ | SSH 救火快速查表 |
*Star 为撰写时量级约数,以仓库页面实时数据为准。
flowchart TD
A["我该用哪个"] --> B["画架构图"]
A --> C["日常查数"]
A --> D["做本地优先应用"]
A --> E["大表改结构"]
A --> F["远程救火"]
B --> B1["ChartDB"]
C --> C1["Beekeeper Studio"]
D --> D1["PGlite"]
E --> E1["pgroll 或 tern"]
F --> F1["Harlequin 或 dblab"]
mindmap
root((SQL 工具箱))
可视化
ChartDB
Beekeeper Studio
嵌入式
PGlite
迁移
pgroll 零停机
tern 极简
终端
usql 万能连接
Harlequin TUI IDE
dblab 快速查表
[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。
