mirror of
https://github.com/Syngnat/GoNavi.git
synced 2026-08-11 01:03:51 +08:00
## 关联 Issue Fixes #850 ## 问题根因 表设计器只接收数据库名和表名,PostgreSQL/Kingbase 的 Schema 上下文没有从数据库树、数据视图继续传递;建表时也直接使用裸表名。因此同一数据库存在多个 Schema 时,创建和修改 SQL 会落到连接默认 Schema,无法选择目标 Schema。 ## 修复方案 - 在数据库树、数据视图和表设计器入口之间传递 Schema 上下文。 - 为 PostgreSQL/Kingbase 表设计器增加 Schema 选择器,通过 Schema 列表和 `current_schema()` 初始化当前选择,并按连接记忆最近一次选择。 - 建表时使用所选 Schema 限定裸表名;改表、索引和注释操作统一解析所选 Schema,同时保留显式 `schema.table` 的优先级。 - 使用请求序号和最新选择引用避免异步元数据响应覆盖用户切换;连接被替换或删除时同步清理失效记忆。 - 增加 Schema 解析、连接记忆和入口上下文传递的回归测试。 ## 验证结果 | 验证项 | 命令或步骤 | 结果 | | --- | --- | --- | | Schema 与入口定向回归 | `npm --prefix frontend test -- <相关测试文件>` | 通过,327/327 | | 独立安全复核定向回归 | 3 个相关测试文件 | 通过,209/209 | | TypeScript 检查 | `tsc --noEmit` | 通过 | | 前端构建 | `npm --prefix frontend run build` | 通过 | | 完整前端回归 | `npm --prefix frontend test` | 通过,447 个测试文件、3793/3793 | | 桌面与窄屏 GUI 验收 | 浏览器操作 PostgreSQL/Kingbase 表设计器 Schema 展示、选择及上下文传递路径 | 通过,无布局重叠或控制台错误 | | 差异检查 | `git diff --check`、`git diff --cached --check` | 通过 | ## 风险与兼容性 Schema 选择能力仅对 PostgreSQL 和 Kingbase 开启;其他数据库类型继续沿用原有数据库/Schema 解析和 UI 行为。未修改后端 API、持久化数据格式或数据库 `search_path`。当 `current_schema()` 查询失败且没有显式或已记忆 Schema 时保持裸表名,交由数据库连接默认行为处理。 ## 回滚方式 回滚提交 `92b103a23ce243650025c1c047167be61394d9ed` 即可恢复原行为;本次改动不迁移或修改用户数据。
Lite DB Client
一个基于 Electron、React 和 Ant Design 构建的轻量级 MySQL 数据库客户端。
✨ 功能特性
- 连接管理: 轻松创建和保存 MySQL 数据库连接。
- 结构浏览: 通过树形视图快速查看数据库和表结构。
- 数据查看: 双击表名即可查看数据(支持分页/滚动加载)。
- SQL 编辑器: 集成 Monaco Editor,提供强大的 SQL 编写和执行体验(支持语法高亮)。
- 多标签页: 支持多窗口并行操作,类似 Navicat 的使用体验。
🛠️ 技术栈
- Electron: 桌面端运行环境。
- React + Vite: 前端框架与极速构建工具。
- Ant Design: 企业级 UI 组件库。
- Zustand: 轻量级状态管理。
- MySQL2: 高性能 Node.js MySQL 驱动。
- Monaco Editor: VS Code 同款代码编辑器。
🚀 快速开始
-
安装依赖
npm install -
启动开发模式
npm run electron:dev这将启动 Vite 开发服务器并打开 Electron 窗口。
-
构建生产版本
npm run build构建完成的安装包(dmg/exe/deb)将位于
dist/或release/目录下。
⚠️ 说明
- 本项目目前处于 MVP (最小可行性产品) 阶段。
- 当前版本主要支持 MySQL 数据库。
- 密码目前保存在内存/本地存储中,请注意在生产环境中的安全性。
希望这款轻量级工具能成为你开发路上的好帮手!