Files
opsxdb/README.md
T
logan 26f459d1b8 fix: 顶栏文案去重与文档/连库体验更新
顶栏定为:连接 · 新建连接 · 新建查询 · 查询历史 · 快捷键;
同步 docs/落地页、对象树与 connection-types 注册表整理。
2026-09-20 16:32:29 +08:00

69 lines
3.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 族/PG 族/SQL Server/Oracle/SQLite/Redis)+ 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(生成/解释/优化/修复/方言/样例)
## 驱动与连接类型
- **注册表**:`connection-types/connection-types.json`(schema v1,字段说明见该目录 `README.md`)。规划为驱动目录的单一事实来源;生成器接入前以 `packages/ui/src/catalog.ts` 与 `apps/server/internal/db/open.go` 为准。
- **就绪状态**:`ready` = 可测试/连接;`verified` = 本机 docker 验收通过,依据 `tests/README.md` 驱动验收表。当前 MySQL/MariaDB/PG/SQL Server/SQLite/Redis 已验收,Oracle 代码就绪但本机未验证,达梦/MongoDB/ZK/ES/InfluxDB 未就绪。
- **路线**:常用库走 native Go 驱动编译内置(go-ora 连 Oracle,不引入 JVM);长尾库(达梦/MongoDB/ZK/InfluxDB 等)规划 agent 按需接入,驱动分发走 Maven 坐标钉版本 + sha256 + 镜像回退,计划托管于 `opsxdb-driver` 仓库(Gitee/GitHub)。
- **许可**:`connection-types/` 注册表数据从自有代码与厂商公开事实推导(见 `connection-types/NOTICE.md`);仓库整体许可证以根 LICENSE 为准。
## 端口
| 服务 | 端口 | 环境变量 |
|------|------|----------|
| Gin | 8788 | `OPSXDB_SERVER_PORT` / `OPSXDB_ADDR` |
| Vite | 5174 | `OPSXDB_WEB_PORT` |