Files
opsxdb/README.md
T
logan f8740d27f7 feat: OpsxDB 桌面数据库客户端首版入库
含工作台/连库多引擎字段与 SSH·SSL、结果编辑、Redis 键浏览、
Tauri 桌面与 docs/落地页;排除本地构建产物与 sidecar 二进制。
2026-09-19 22:43:45 +08:00

62 lines
2.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
> **产品形态:桌面 GUI(Tauri)**。`http://127.0.0.1:5174` 仅为开发壳。文档 `/docs`、官网 `/` 由本机后端提供。
# OpsxDB
给运维和开发用的 **数据库客户端**(连接管理 / SQL 工作台 / AI 写 SQL)。
从 OpsxAPI 脚手架分叉:同一套 monorepo(web + Gin + 可选 Tauri),产品面换成 DB。
## 架构
```
packages/ui 连接选择器 + SQL 工作台 + AI 面板
packages/core 共享工具(保留)
packages/transport 浏览器 / Gin / Tauri(保留兼容)
apps/web Vite + React(:5174)
apps/desktop Tauri 2 壳
apps/server Gin:health + MySQL 驱动 + AI stub(:8788)
```
## 怎么跑
```bash
export PATH="$HOME/.nvm/versions/node/v24.19.0/bin:/opt/homebrew/bin:$PATH"
export OPSXDB_SERVER_PORT=8788 OPSXDB_WEB_PORT=5174
npm install
./run.sh web # Gin :8788 + Vite :5174
```
打开 http://127.0.0.1:5174/
```bash
curl -s http://127.0.0.1:8788/api/health
curl -s -X POST http://127.0.0.1:8788/api/ai/chat \
-H 'Content-Type: application/json' \
-d '{"action":"generate","prompt":"查最近用户"}'
```
## 日常怎么用
1. **新建连接** → 选类型,或粘贴 `mysql://user:pass@host:3306/db` 点「填入」
2. **测试** → **保存并连接**
3. 左侧点库展开表;**点表名**打开前 100 行(展开表看列)
4. 编辑器 **⌘/Ctrl+Enter** 执行当前语句或选区(不是整页脚本)
5. 结果:**复制 / CSV / INSERT**;双击单元格复制
## 已做(便捷向)
- 连接选择器:搜索 / 分类 / 最近 / 图标网格;URL 拆字段;按驱动表单(SQLite 文件、Redis、Oracle Service、SSL)
- 工作台:懒加载对象树、点表看数据、CodeMirror SQL、多 Tab、可拖分栏
- 会话:连接后查询只带 `sessionId`,账密不再每次上送;本机密码做了混淆
- 结果截断提示、危险 SQL 确认、查询历史、主题/Tab 持久化、快捷键
- 驱动:MySQL 族 / PostgreSQL 族(含 GaussDB、人大金仓)/ SQL Server / Oracle / SQLite / Redis
- AI 面板仍是 stub(生成/解释/优化/修复/方言/样例)
## 端口
| 服务 | 端口 | 环境变量 |
|------|------|----------|
| Gin | 8788 | `OPSXDB_SERVER_PORT` / `OPSXDB_ADDR` |
| Vite | 5174 | `OPSXDB_WEB_PORT` |