263 lines
14 KiB
Markdown
263 lines
14 KiB
Markdown
<div align="center">
|
||
<h2>15 MB 驾驭 30+ 种数据库。桌面端 & Docker 自托管,内置 AI 助手。</h2>
|
||
|
||
<p>
|
||
<img src="https://dl.dbxio.com/assets/readme-hero-20260517.png" alt="DBX 截图" width="820" />
|
||
</p>
|
||
|
||
<p>
|
||
<a href="https://github.com/t8y2/dbx/releases"><img src="https://img.shields.io/github/downloads/t8y2/dbx/total?style=for-the-badge&color=blue" /></a>
|
||
<a href="https://github.com/t8y2/dbx/graphs/contributors"><img src="https://img.shields.io/github/contributors/t8y2/dbx?style=for-the-badge" /></a>
|
||
<a href="https://discord.gg/W7NyVDRt6a"><img src="https://dcbadge.limes.pink/api/server/W7NyVDRt6a" alt="加入 Discord" /></a>
|
||
<a href="https://qm.qq.com/cgi-bin/qm/qr?k=&group_code=1087880322"><img src="https://img.shields.io/badge/QQ_群-1087880322-EB1923?style=for-the-badge&logo=data:image/svg%2bxml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iODYiIHdpZHRoPSI4NiIgdmlld0JveD0iMCAwIDEyMCAxNDUiPjxwYXRoIGZpbGw9IiNmYWFiMDciIGQ9Ik02MC41MDMgMTQyLjIzN2MtMTIuNTMzIDAtMjQuMDM4LTQuMTk1LTMxLjQ0NS0xMC40Ni0zLjc2MiAxLjEyNC04LjU3NCAyLjkzMi0xMS42MSA1LjE3NS0yLjYgMS45MTgtMi4yNzUgMy44NzQtMS44MDcgNC42NjMgMi4wNTYgMy40NyAzNS4yNzMgMi4yMTYgNDQuODYyIDEuMTM2em0wIDBjMTIuNTM1IDAgMjQuMDM5LTQuMTk1IDMxLjQ0Ny0xMC40NiAzLjc2IDEuMTI0IDguNTczIDIuOTMyIDExLjYxIDUuMTc1IDIuNTk4IDEuOTE4IDIuMjc0IDMuODc0IDEuODA1IDQuNjYzLTIuMDU2IDMuNDctMzUuMjcyIDIuMjE2LTQ0Ljg2MiAxLjEzNnptMCAwIi8+PHBhdGggZD0iTTYwLjU3NiA2Ny4xMTljMjAuNjk4LS4xNCAzNy4yODYtNC4xNDcgNDIuOTA3LTUuNjgzIDEuMzQtLjM2NyAyLjA1Ni0xLjAyNCAyLjA1Ni0xLjAyNC4wMDUtLjE4OS4wODUtMy4zNy4wODUtNS4wMUMxMDUuNjI0IDI3Ljc2OCA5Mi41OC4wMDEgNjAuNSAwIDI4LjQyLjAwMSAxNS4zNzUgMjcuNzY5IDE1LjM3NSA1NS40MDFjMCAxLjY0Mi4wOCA0LjgyMi4wODYgNS4wMSAwIDAgLjU4My42MTUgMS42NS45MTMgNS4xOSAxLjQ0NCAyMi4wOSA1LjY1IDQzLjMxMiA1Ljc5NXptNTYuMjQ1IDIzLjAyYy0xLjI4My00LjEyOS0zLjAzNC04Ljk0NC00LjgwOC0xMy41NjggMCAwLTEuMDItLjEyNi0xLjUzNy4wMjMtMTUuOTEzIDQuNjIzLTM1LjIwMiA3LjU3LTQ5LjkgNy4zOTJoLS4xNTNjLTE0LjYxNi4xNzUtMzMuNzc0LTIuNzM3LTQ5LjYzNC03LjMxNS0uNjA2LS4xNzUtMS44MDItLjEtMS44MDItLjEtMS43NzQgNC42MjQtMy41MjUgOS40NC00LjgwOCAxMy41NjgtNi4xMTkgMTkuNjktNC4xMzYgMjcuODM4LTIuNjI3IDI4LjAyIDMuMjM5LjM5MiAxMi42MDYtMTQuODIxIDEyLjYwNi0xNC44MjEgMCAxNS40NTkgMTMuOTU3IDM5LjE5NSA0NS45MTggMzkuNDEzaC44NDhjMzEuOTYtLjIxOCA0NS45MTctMjMuOTU0IDQ1LjkxNy0zOS40MTMgMCAwIDkuMzY4IDE1LjIxMyAxMi42MDcgMTQuODIyIDEuNTA4LS4xODMgMy40OTEtOC4zMzItMi42MjctMjguMDIxIi8+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTQ5LjA4NSA0MC44MjRjLTQuMzUyLjE5Ny04LjA3LTQuNzYtOC4zMDQtMTEuMDYzLS4yMzYtNi4zMDUgMy4wOTgtMTEuNTc2IDcuNDUtMTEuNzczIDQuMzQ3LS4xOTUgOC4wNjQgNC43NiA4LjMgMTEuMDY1LjIzOCA2LjMwNi0zLjA5NyAxMS41NzctNy40NDYgMTEuNzcxbTMxLjEzMy0xMS4wNjNjLS4yMzMgNi4zMDItMy45NTEgMTEuMjYtOC4zMDMgMTEuMDYzLTQuMzUtLjE5NS03LjY4NC01LjQ2NS03LjQ0Ni0xMS43Ny4yMzYtNi4zMDUgMy45NTItMTEuMjYgOC4zLTExLjA2NiA0LjM1Mi4xOTcgNy42ODYgNS40NjggNy40NDkgMTEuNzczIi8+PHBhdGggZmlsbD0iI2ZhYWIwNyIgZD0iTTg3Ljk1MiA0OS43MjVDODYuNzkgNDcuMTUgNzUuMDc3IDQ0LjI4IDYwLjU3OCA0NC4yOGgtLjE1NmMtMTQuNSAwLTI2LjIxMiAyLjg3LTI3LjM3NSA1LjQ0NmEuODYzLjg2MyAwIDAwLS4wODUuMzY3Ljg4Ljg4IDAgMDAuMTYuNDk2Yy45OCAxLjQyNyAxMy45ODUgOC40ODcgMjcuMyA4LjQ4N2guMTU2YzEzLjMxNCAwIDI2LjMxOS03LjA1OCAyNy4yOTktOC40ODdhLjg3My44NzMgMCAwMC4xNi0uNDk4Ljg1Ni44NTYgMCAwMC0uMDg1LS4zNjUiLz48cGF0aCBkPSJNNTQuNDM0IDI5Ljg1NGMuMTk5IDIuNDktMS4xNjcgNC43MDItMy4wNDYgNC45NDMtMS44ODMuMjQyLTMuNTY4LTEuNTgtMy43NjgtNC4wNy0uMTk3LTIuNDkyIDEuMTY3LTQuNzA0IDMuMDQzLTQuOTQ0IDEuODg2LS4yNDQgMy41NzQgMS41OCAzLjc3MSA0LjA3bTExLjk1Ni44MzNjLjM4NS0uNjg5IDMuMDA0LTQuMzEyIDguNDI3LTIuOTkzIDEuNDI1LjM0NyAyLjA4NC44NTcgMi4yMjMgMS4wNTcuMjA1LjI5Ni4yNjIuNzE4LjA1MyAxLjI4Ni0uNDEyIDEuMTI2LTEuMjYzIDEuMDk1LTEuNzM0Ljg3NS0uMzA1LS4xNDItNC4wODItMi42Ni03LjU2MiAxLjA5Ny0uMjQuMjU3LS42NjguMzQ2LTEuMDczLjA0LS40MDctLjMwOC0uNTc0LS45My0uMzM0LTEuMzYyIi8+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTYwLjU3NiA4My4wOGgtLjE1M2MtOS45OTYuMTItMjIuMTE2LTEuMjA0LTMzLjg1NC0zLjUxOC0xLjAwNCA1LjgxOC0xLjYxIDEzLjEzMi0xLjA5IDIxLjg1MyAxLjMxNiAyMi4wNDMgMTQuNDA3IDM1LjkgMzQuNjE0IDM2LjFoLjgyYzIwLjIwOC0uMiAzMy4yOTgtMTQuMDU3IDM0LjYxNi0zNi4xLjUyLTguNzIzLS4wODctMTYuMDM1LTEuMDkyLTIxLjg1NC0xMS43MzkgMi4zMTUtMjMuODYyIDMuNjQtMzMuODYgMy41MTgiLz48cGF0aCBmaWxsPSIjZWIxOTIzIiBkPSJNMzIuMTAyIDgxLjIzNXYyMS42OTNzOS45MzcgMi4wMDQgMTkuODkzLjYxNlY4My41MzVjLTYuMzA3LS4zNTctMTMuMTA5LTEuMTUyLTE5Ljg5My0yLjMiLz48cGF0aCBmaWxsPSIjZWIxOTIzIiBkPSJNMTA1LjUzOSA2MC40MTJzLTE5LjMzIDYuMTAyLTQ0Ljk2MyA2LjI3NWgtLjE1M2MtMjUuNTkxLS4xNzItNDQuODk2LTYuMjU1LTQ0Ljk2Mi02LjI3NUw4Ljk4NyA3Ni41N2MxNi4xOTMgNC44ODIgMzYuMjYxIDguMDI4IDUxLjQzNiA3Ljg0NWguMTUzYzE1LjE3NS4xODMgMzUuMjQyLTIuOTYzIDUxLjQzNy03Ljg0NXptMCAwIi8+PC9zdmc+" alt="加入 QQ 群" /></a>
|
||
<a href="https://docs.qq.com/doc/DVVhMY0h1ekJqc0tz" target="_blank"><img src="https://img.shields.io/badge/微信交流群-点击加入-07C160?style=for-the-badge&logo=wechat&logoColor=white" alt="加入微信交流群" /></a>
|
||
</p>
|
||
<p>
|
||
<img src="https://img.shields.io/badge/MySQL-4479A1?logo=mysql&logoColor=white" />
|
||
<img src="https://img.shields.io/badge/PostgreSQL-4169E1?logo=postgresql&logoColor=white" />
|
||
<img src="https://img.shields.io/badge/SQLite-003B57?logo=sqlite&logoColor=white" />
|
||
<img src="https://img.shields.io/badge/Redis-DC382D?logo=redis&logoColor=white" />
|
||
<img src="https://img.shields.io/badge/MongoDB-47A248?logo=mongodb&logoColor=white" />
|
||
<img src="https://img.shields.io/badge/DuckDB-FFF000?logo=duckdb&logoColor=black" />
|
||
<img src="https://img.shields.io/badge/ClickHouse-FFCC01?logo=clickhouse&logoColor=black" />
|
||
<img src="https://img.shields.io/badge/SQL%20Server-CC2927?logo=microsoftsqlserver&logoColor=white" />
|
||
<img src="https://img.shields.io/badge/Oracle-F80000?logo=oracle&logoColor=white" />
|
||
<img src="https://img.shields.io/badge/Elasticsearch-005571?logo=elasticsearch&logoColor=white" />
|
||
<img src="https://img.shields.io/badge/MariaDB-003545?logo=mariadb&logoColor=white" />
|
||
<img src="https://img.shields.io/badge/TiDB-DC150B?logo=tidb&logoColor=white" />
|
||
<img src="https://img.shields.io/badge/Doris-0052CC?logoColor=white" />
|
||
<img src="https://img.shields.io/badge/SelectDB-22C1C3?logoColor=white" />
|
||
<img src="https://img.shields.io/badge/StarRocks-5C2D91?logoColor=white" />
|
||
<img src="https://img.shields.io/badge/Redshift-8C4FFF?logo=amazonredshift&logoColor=white" />
|
||
<img src="https://img.shields.io/badge/DM-3857FF?logoColor=white" />
|
||
<img src="https://img.shields.io/badge/OceanBase-006AFF?logoColor=white" />
|
||
<img src="https://img.shields.io/badge/openGauss-2B7BD9?logoColor=white" />
|
||
<img src="https://img.shields.io/badge/GaussDB-E60012?logoColor=white" />
|
||
<img src="https://img.shields.io/badge/KingBase-003B8E?logoColor=white" />
|
||
<img src="https://img.shields.io/badge/TDengine-2F6FFF?logoColor=white" />
|
||
<img src="https://img.shields.io/badge/CockroachDB-6933FF?logoColor=white" />
|
||
<img src="https://img.shields.io/badge/JDBC-4B5563?logoColor=white" />
|
||
<img src="https://img.shields.io/badge/and%20more...-555555?logoColor=white" />
|
||
</p>
|
||
<p>
|
||
<a href="README.md">English</a> | 简体中文
|
||
</p>
|
||
|
||
<p>
|
||
<a href="docs/screenshot-light.png"><img src="https://cdn.jsdelivr.net/gh/t8y2/dbx@main/docs/screenshot-light.png" width="395" /></a>
|
||
<a href="docs/screenshot-dark.png"><img src="https://cdn.jsdelivr.net/gh/t8y2/dbx@main/docs/screenshot-dark.png" width="395" /></a>
|
||
</p>
|
||
<p>
|
||
<a href="docs/screenshot-er.png"><img src="https://cdn.jsdelivr.net/gh/t8y2/dbx@main/docs/screenshot-er.png" width="395" /></a>
|
||
<a href="docs/screenshot-grid.png"><img src="https://cdn.jsdelivr.net/gh/t8y2/dbx@main/docs/screenshot-grid.png" width="395" /></a>
|
||
</p>
|
||
</div>
|
||
|
||
## 功能特性
|
||
|
||
### 30+ 种数据库,一个工具搞定
|
||
|
||
MySQL、PostgreSQL、SQLite、Redis、MongoDB、DuckDB、ClickHouse、SQL Server、Oracle、Elasticsearch、MariaDB、TiDB、OceanBase、openGauss、GaussDB、KingBase、Vastbase、GoldenDB、Doris、SelectDB、StarRocks、Redshift、DM、TDengine、CockroachDB、Access、HighGo 等数据库都能直接连接。Agent/JDBC 方向的配置还可扩展到 H2、Snowflake、Trino、Hive、DB2、Informix、Neo4j、Cassandra、BigQuery、Kylin、SunDB 和自定义 JDBC。全部装进约 15 MB 的应用里,不内嵌 Chromium。
|
||
|
||
### 查询编辑器
|
||
|
||
CodeMirror 6 语法高亮、元数据感知自动补全、`Cmd+Enter` 执行、选中 SQL 执行、SQL 格式化、诊断提示,9 种编辑器主题。查询历史、常用 SQL 片段、标签页恢复和 SQL 文件执行让重复工作更顺手。
|
||
|
||
### AI SQL 助手
|
||
|
||
用自然语言描述你的需求,直接生成 SQL。还能解释查询、优化 SQL、修复错误,并通过内置安全检查执行 AI 生成的 SQL。支持 Claude、OpenAI、本地模型或任何 OpenAI 兼容端点。
|
||
|
||
### 数据表格
|
||
|
||
虚拟滚动,轻松应对大型结果集。行内编辑、保存前 SQL 预览、WHERE / ORDER BY 控件、DataGrip 风格过滤器、LIKE / NOT LIKE 右键过滤、排序、全文搜索、分页、列宽调整、自动列宽、行号、斑马纹和完整单元格详情。支持导出或复制为 CSV、JSON、Markdown、XLSX、INSERT 语句。
|
||
|
||
### Schema 工具
|
||
|
||
- **结构浏览** — 数据库、Schema、表、字段、索引、外键、触发器,支持侧边栏搜索和置顶
|
||
- **对象浏览** — 按类型分组查看过程、函数、视图,并在支持的数据库中编辑源码
|
||
- **表结构编辑器** — 对支持的数据库执行可审查的字段和索引变更
|
||
- **ER 关系图** — 可视化表间关联
|
||
- **Schema 对比** — 跨连接对比表结构差异
|
||
- **执行计划** — 可视化查询执行计划
|
||
- **字段血缘** — 字段级血缘分析
|
||
- **数据库搜索** — 在大型 Schema 中快速查找对象
|
||
|
||
### 数据操作
|
||
|
||
- **数据导入** — CSV、Excel
|
||
- **数据迁移** — 在数据库之间迁移数据
|
||
- **数据库导出** — 完整数据库导出
|
||
- **数据对比** — 对比表数据并审查同步结果
|
||
- **SQL 文件执行** — 直接执行 `.sql` 文件
|
||
- **文件预览** — 拖入 Parquet、CSV、JSON 即时预览(基于 DuckDB)
|
||
- **连接导入** — 从 DBeaver 或 Navicat 导入连接配置
|
||
|
||
### 专项浏览器
|
||
|
||
- **Redis** — 模式匹配搜索、批量键操作、命令执行器、TTL 编辑,全数据类型支持(String、Hash、List、Set、ZSet、Stream)
|
||
- **MongoDB** — 文档增删改查、分页浏览,支持 Atlas 和副本集 URL 直连
|
||
|
||
### 安全与连接
|
||
|
||
SSH 隧道(密钥和密码认证)· 数据库和 AI 代理设置 · 断线自动重连 · 危险操作确认对话框 · 加密导出/导入连接配置 · 连接颜色标记 · 驱动商店与可选 JDBC 插件
|
||
|
||
### 精致 UI
|
||
|
||
深色模式原生标题栏同步 · 9 种编辑器主题 · English、简体中文、Español · 布局偏好设置 · 内置自动更新
|
||
|
||
## AI 编程助手集成 (MCP)
|
||
|
||
DBX 提供 [MCP Server](packages/mcp-server/),让 AI 编程助手直接使用 DBX 中已配置的数据库连接查询数据。
|
||
|
||
```bash
|
||
npx @dbx-app/mcp-server
|
||
```
|
||
|
||
在 `.mcp.json` 中添加:
|
||
|
||
```json
|
||
{
|
||
"mcpServers": {
|
||
"dbx": { "command": "npx", "args": ["-y", "@dbx-app/mcp-server"] }
|
||
}
|
||
}
|
||
```
|
||
|
||
支持 Claude Code、Cursor、Windsurf 等 MCP 兼容的 AI 助手。可列出连接、浏览表、执行 SQL,还能直接在 DBX 界面中打开表。
|
||
|
||
DBX 也提供独立 CLI 包,适合终端、脚本和 Codex 工作流:
|
||
|
||
```bash
|
||
npm install -g @dbx-app/cli
|
||
dbx connections list --json
|
||
dbx query local "select 1" --json
|
||
```
|
||
|
||
详见 [MCP Server 说明](packages/mcp-server/README.md) 和 [CLI 说明](packages/cli/README.md)。
|
||
|
||
## 安装
|
||
|
||
从 [Releases](https://github.com/t8y2/dbx/releases/latest) 页面下载最新版本。
|
||
|
||
**Homebrew (macOS):**
|
||
|
||
```bash
|
||
brew install --cask t8y2/tap/dbx
|
||
```
|
||
|
||
**Scoop (Windows):**
|
||
|
||
```bash
|
||
scoop bucket add dbx https://github.com/t8y2/scoop-bucket
|
||
scoop install dbx
|
||
```
|
||
|
||
## 自托管 (Docker)
|
||
|
||
DBX 提供 Web 版本,可通过 Docker 部署。
|
||
|
||
```bash
|
||
docker run -d --name dbx -p 4224:4224 -v dbx-data:/app/data t8y2/dbx
|
||
```
|
||
|
||
或使用 Docker Compose,示例文件位于 `deploy/docker-compose.yml`:
|
||
|
||
```yaml
|
||
services:
|
||
dbx:
|
||
image: t8y2/dbx
|
||
ports:
|
||
- "4224:4224"
|
||
volumes:
|
||
- dbx-data:/app/data
|
||
restart: unless-stopped
|
||
|
||
volumes:
|
||
dbx-data:
|
||
```
|
||
|
||
浏览器访问 `http://localhost:4224`。支持 amd64 / arm64 双架构镜像。
|
||
|
||
## 快速开始
|
||
|
||
### 环境要求
|
||
|
||
- [Node.js](https://nodejs.org/) >= 18
|
||
- [pnpm](https://pnpm.io/)
|
||
- [Rust](https://www.rust-lang.org/tools/install) >= 1.77
|
||
|
||
#### 系统依赖
|
||
|
||
**macOS:**
|
||
|
||
无需额外安装。
|
||
|
||
**Linux (Ubuntu/Debian):**
|
||
|
||
```bash
|
||
sudo apt-get install -y libwebkit2gtk-4.1-dev libgtk-3-dev libappindicator3-dev librsvg2-dev patchelf libssl-dev
|
||
```
|
||
|
||
**Windows:**
|
||
|
||
无需额外安装。
|
||
|
||
### 开发
|
||
|
||
```bash
|
||
pnpm install
|
||
pnpm dev:tauri
|
||
```
|
||
|
||
Web 版本:
|
||
|
||
```bash
|
||
pnpm dev:web # 前端
|
||
pnpm dev:backend # 后端
|
||
```
|
||
|
||
### 构建
|
||
|
||
```bash
|
||
pnpm tauri build
|
||
```
|
||
|
||
安装包输出在 `src-tauri/target/release/bundle/` 目录。
|
||
|
||
## 技术栈
|
||
|
||
| 层级 | 技术 |
|
||
|------|------|
|
||
| 框架 | [Tauri 2](https://tauri.app/) |
|
||
| 前端 | [Vue 3](https://vuejs.org/) + TypeScript |
|
||
| UI | [shadcn-vue](https://www.shadcn-vue.com/) + Tailwind CSS |
|
||
| 编辑器 | [CodeMirror 6](https://codemirror.net/) |
|
||
| 后端 | Rust + [sqlx](https://github.com/launchbadge/sqlx) / [tiberius](https://github.com/prisma/tiberius) / [redis-rs](https://github.com/redis-rs/redis-rs) / [mongodb](https://github.com/mongodb/mongo-rust-driver) |
|
||
|
||
## 社区
|
||
|
||
<a href="https://discord.gg/W7NyVDRt6a" target="_blank"><img src="https://img.shields.io/badge/Discord-加入-5865F2?logo=discord&logoColor=white" alt="Discord" /></a>
|
||
<a href="https://qm.qq.com/q/1087880322" target="_blank"><img src="https://img.shields.io/badge/QQ%20群-1087880322-EB1923?logo=tencentqq&logoColor=white" alt="QQ 群" /></a>
|
||
<a href="https://docs.qq.com/doc/DVVhMY0h1ekJqc0tz" target="_blank"><img src="https://img.shields.io/badge/微信交流群-点击加入-07C160?logo=wechat&logoColor=white" alt="微信交流群" /></a>
|
||
[](https://linux.do)
|
||
|
||
## 贡献者
|
||
|
||
<a href="https://github.com/t8y2/dbx/graphs/contributors">
|
||
<img src="https://contrib.rocks/image?repo=t8y2/dbx" />
|
||
</a>
|
||
|
||
## Star History
|
||
|
||
<a href="https://www.star-history.com/?repos=t8y2%2Fdbx&type=date&legend=top-left">
|
||
<picture>
|
||
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/chart?repos=t8y2/dbx&type=date&theme=dark&legend=top-left" />
|
||
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/chart?repos=t8y2/dbx&type=date&legend=top-left" />
|
||
<img alt="Star History Chart" src="https://api.star-history.com/chart?repos=t8y2/dbx&type=date&legend=top-left" />
|
||
</picture>
|
||
</a>
|
||
|
||
## 开源协议
|
||
|
||
[AGPL-3.0](LICENSE)
|