为什么我又构建了另一个SQL客户端(并且开源了它)
发布: (2025年12月12日 GMT+8 20:46)
6 min read
原文: Dev.to
Source: Dev.to

问题
以下是我作为开发者的典型工作流:
- 需要在数据库中检查某些内容
- 打开 SQL 客户端
- 等待……等待……(为什么它在加载插件?)
- 在 47 个菜单选项中寻找查询窗口
- 编写一个简单的
SELECT * FROM users LIMIT 10;
- 结果被工具栏、状态栏和我从不使用的面板埋在下面
每一次,都是如此。
我并不需要企业级的数据库管理工具。我需要的是:
- 打开快 – 在 2 秒内,而不是 20 秒
- 不妨碍我 – 查询编辑器居中显示
- 支持多种数据库 – PostgreSQL、MySQL 和 SQL Server
- 有键盘快捷键 –
Cmd+Enter运行,Cmd+K切换 - 外观不错 – 暗色模式在凌晨 2 点也不刺眼
现有选项
| 工具 | 快吗? | 简单吗? | 多库支持? | 价格 |
|---|---|---|---|---|
| pgAdmin | ❌ | ❌ | ❌ | 免费 |
| DBeaver | ❌ | ❌ | ✅ | 免费 |
| DataGrip | ✅ | ❌ | ✅ | $229/年 |
| TablePlus | ✅ | ✅ | ✅ | $89 |
| Postico | ✅ | ✅ | ❌ | $50 |
模式:
- 免费工具 = 缓慢且臃肿
- 快速工具 = 收费(有时仍然臃肿)
- 简单工具 = 仅单一数据库
我想要四者兼备:快速、简洁、多库且免费(个人使用)。
迎接 data‑peek
于是我自己动手做了一个。它的哲学很简单:
简洁胜于功能堆砌。键盘优先。打开和查询都快。
它的外观
┌─────────────────────────────────────────────────────────────┐
│ [Connection ▾] [Settings] [AI] │
├──────────────┬──────────────────────────────────────────────┤
│ │ │
│ Schemas │ SELECT * FROM users │
│ └─ public │ WHERE created_at > '2024-01-01' │
│ └─ users │ ORDER BY id DESC │
│ └─ posts │ LIMIT 100; │
│ └─ ... │ │
│ │ [Cmd+Enter to execute] │
│ ├──────────────────────────────────────────────│
│ │ id │ name │ email │ created_at │
│ │ ───┼───────┼────────────────┼──────────── │
│ │ 42 │ Alice │ alice@test.com │ 2024-03-15 │
│ │ 41 │ Bob │ bob@test.com │ 2024-03-14 │
│ │ │
└──────────────┴──────────────────────────────────────────────┘
就是这样。左侧是模式浏览器,上方是查询编辑器,下方是结果。
核心特性
包含的功能
- 多标签查询编辑器,使用 Monaco(VS Code 的编辑器引擎)
- 支持 PostgreSQL、MySQL、SQL Server
- 模式资源管理器,展示表、视图、列和存储过程
- 查询历史,记录执行时间和行数
- 已保存查询,便于常用 SQL
- 数据导出为 CSV 与 JSON
- 内联编辑——直接在结果表中编辑行
- ER 图可视化——查看表之间的关系
- AI 助手——自然语言转 SQL(自行提供 API Key)
- 暗色模式——因为这本该有
故意不包含的功能
- 数据库管理工具
- 用户管理界面
- 备份/恢复向导
- 47 个工具栏按钮
- 插件系统
- 启动闪屏
- 功能臃肿
为什么开源?
1. 我每天都在使用开源
我的职业生涯建立在 PostgreSQL、React、TypeScript、Node.js、Linux…回馈社区很自然。
2. 透明带来信任
数据库客户端会处理凭证和数据。开源让你能够:
- 审计代码
- 看清凭证是如何存储的
- 确认没有遥测或数据收集
- 如有偏执可自行编译源码
3. 社区让它更好
已有的 Pull Request 修复了我未曾发现的 bug,并加入了我未想到的功能。
4. 可持续的商业模式
data‑peek 对个人使用 免费。商业使用需购买许可证,这使得:
- 个人开发者可以永久免费使用
- 受益的公司可以提供资金支持
- 项目得以持续维护和改进
技术栈(预览)
- Electron – 跨平台桌面(macOS、Windows、Linux)
- React 19 – 使用现代 Hook 与并发特性构建 UI
- TypeScript – 严格模式,因为运行时错误是我的克星
- Zustand – 不会让我哭泣的状态管理
- Monaco – 为 VS Code 提供动力的编辑器
- Tailwind CSS 4 – 无需繁杂 CSS 文件的样式方案
接下来会做什么?
这是系列文章的第一篇,后续我将分享:
- 技术栈的抉择及原因
- 多库支持的数据库适配器模式
- 如何在不锁厂商的前提下加入 AI
- 使用碰撞检测实现 ER 图可视化
- 跨方言的 SQL 解析(比想象中更难)
试一试
data‑peek 已经发布:
- GitHub:
- 下载: macOS、Windows、Linux 二进制文件均在 Release 中
- 许可证: MIT(个人使用免费)
如果你尝试了,欢迎反馈。可以提交 Issue、开启讨论,或者如果觉得有用就给仓库点星。
下一篇:data‑peek 背后的技术栈——2025 年的现代桌面开发
