SuperAPI AI 工具集

dbx-database-client

数据与分析

查看项目

更新于 10-15 10:33

技能介绍

DBX Database Client 是一款开源、轻量(约 15 MB)的跨平台数据库管理图形界面工具,采用 Tauri 2(Rust 后端)加 Vue 3 前端构建,不捆绑 Chromium。它支持 MySQL、PostgreSQL、SQLite、Redis、MongoDB、DuckDB、ClickHouse、SQL Server、MariaDB、TiDB 等多种数据库。

安装与构建

可从 Releases 下载最新安装包。macOS 上若应用未签名,可执行 xattr -cr /Applications/dbx.app,或通过“系统设置 → 隐私与安全性 → 仍要打开”放行。

从源码构建的前置要求:Node.js >= 18、pnpm、Rust >= 1.77。构建命令为:git clone https://github.com/t8y2/dbx.git、cd dbx、pnpm install、pnpm tauri dev(开发模式)、pnpm tauri build(生产构建,产物位于 src-tauri/target/release/bundle/)。

技术栈:框架为 Tauri 2,前端为 Vue 3 + TypeScript,UI 使用 shadcn-vue + Tailwind CSS,编辑器为 CodeMirror 6,后端为 Rust + sqlx / tiberius / redis-rs / mongodb。项目结构包含 src/(Vue 3 前端,含 ConnectionForm.vue、QueryEditor.vue、DataGrid.vue、SchemaBrowser.vue、Pinia stores、composables、i18n 语言包 en 与 zh-CN)和 src-tauri/(Rust 后端,含 commands IPC、db 驱动 mysql.rs/postgres.rs/sqlite.rs/redis.rs/mongodb.rs/duckdb.rs/clickhouse.rs、main.rs、Cargo.toml、tauri.conf.json)。

连接管理

DBX 将连接信息存储在本地。在界面中点击“+ New Connection”并填写:类型(MySQL / PostgreSQL / SQLite / Redis / MongoDB / DuckDB / ClickHouse / SQL Server)、主机、端口(按类型自动填充默认值)、数据库/Schema 名、用户名、密码(本地加密存储),以及可选的 SSH 隧道(主机、端口、用户、密钥或密码)。

连接字符串示例:MySQL/MariaDB/TiDB 为 mysql://user:password@localhost:3306/mydb;PostgreSQL/openGauss/GaussDB 为 postgresql://user:password@localhost:5432/mydb;SQLite 可直接用文件路径 /path/to/database.db 或拖拽 .db 文件;Redis 为 redis://localhost:6379 或 redis://:password@localhost:6379/0;MongoDB 为 mongodb://user:password@localhost:27017/mydb 或 mongodb+srv://user:password@cluster.mongodb.net/mydb;ClickHouse 为 clickhouse://user:password@localhost:8123/default;DuckDB 为 /path/to/database.duckdb。

查询编辑器

快捷键包括:Cmd/Ctrl + Enter 执行查询,Cmd/Ctrl + 滚轮缩放编辑器字号,Cmd/Ctrl + / 切换注释,Cmd/Ctrl + Z 撤销。功能包括 CodeMirror 6 的 SQL 语法高亮、多语句执行、针对破坏性操作(DROP、DELETE、TRUNCATE、ALTER)的安全确认弹窗,以及支持搜索、恢复、一键复制的查询历史。

AI SQL 助手

DBX 支持 Claude 和 OpenAI,用于自然语言转 SQL、解释、优化与错误修复。通过 Settings → AI Assistant 配置,应用使用环境变量 OPENAI_API_KEY 与 ANTHROPIC_API_KEY(在 shell 或 .env 中设置)。能力包括:生成(如“Show me all users who signed up last month”)、解释(选中查询后“Explain this SQL”)、优化(“Why is this query slow?”)、修复(粘贴错误后“Fix this query”)。

数据网格

支持大数据集虚拟滚动、行内单元格编辑、拖拽调整列宽、行号与斑马纹、点击列头排序、行搜索/筛选、分页控件,以及通过工具栏按钮或右键导出 CSV、JSON、Markdown。

Schema 浏览器

左侧边栏为树形结构:连接 → 数据库/Schema → Tables(表 → Columns 名称/类型/可空性、Indexes、Foreign Keys、Triggers)、Views、Procedures。双击表会打开数据网格并执行 SELECT * FROM table LIMIT 1000。

Redis 浏览器

支持键模式搜索(如 user:、session:),可查看所有 Redis 类型的值(String 原始值、Hash 字段/值表格、List 索引列表、Set 成员列表、ZSet 分数/成员表格),并可查看 TTL 和删除键。

MongoDB 浏览器

提供数据库 → 集合树、带分页的文档列表、文档 CRUD 以及 JSON 文档编辑器。

SSH 隧道

在连接表单中配置 SSH 主机、端口、用户以及密钥(粘贴私钥)或密码认证。隧道通过 SSH 主机代理数据库连接,适合未对公网开放的数据库。

文件拖拽

可将 .db、.sqlite、.duckdb 文件直接拖到 DBX 窗口即时打开,无需配置连接。

前端开发模式

可通过 @tauri-apps/api/core 的 invoke 调用 Rust 命令,例如 useDatabase 组合式函数中的 executeQuery 与 testConnection。新增 Rust 命令使用 #[tauri::command] 宏,并在 main.rs 的 invoke_handler 中注册。Vue 组件(如 QueryPanel.vue)可结合 Pinia store 调用命令并展示结果。i18n 字符串定义在 src/locales/en.json 与 zh-CN.json 中,通过 vue-i18n 的 useI18n 使用。Cargo.toml 关键依赖包括 tauri 2、sqlx 0.7、tiberius 0.12、redis 0.25、mongodb 2.8、duckdb 0.10、serde 1、tokio 1。

故障排查

macOS 构建失败(Rust 链接器错误)可先执行 xcode-select --install 再重试 pnpm tauri build。localhost 出现“Connection refused”时,检查数据库服务是否运行(brew services list 或 systemctl status mysql)、端口是否被占用(lsof -i :5432)、Docker 是否映射端口(-p 5432:5432)。SQLite 报“database is locked”时,先关闭其他占用该文件的应用。macOS 应用无法打开时执行 xattr -cr /Applications/dbx.app。Redis AUTH 错误需确保连接字符串含密码(redis://:yourpassword@localhost:6379)。MongoDB Atlas 使用 Atlas → Connect → Drivers 提供的完整 SRV 连接字符串。pnpm install 失败时检查 node --version(需 >= 18)、pnpm --version(可 npm i -g pnpm)、rustup update。查询历史存储于 Tauri 应用数据目录:macOS 为 ~/Library/Application Support/dbx/,Linux 为 ~/.local/share/dbx/,Windows 为 %APPDATA%\dbx\。

参与贡献

流程为 fork 并 clone 仓库、pnpm install、创建特性分支(如 feat/my-new-database-driver)、以 pnpm tauri dev 热重载开发、也可仅运行前端 pnpm dev、用 pnpm vue-tsc --noEmit 做类型检查,最后向 t8y2/dbx 主分支提交 PR。