杨国锋 78e35a5be8 ️ perf(data-grid): 重构批量编辑链路并优化表格渲染性能
- 重构批量改单元格的状态流,减少高频交互时的无效重渲染
- 优化大数据量场景下的表格交互流畅度与响应延迟
- 调整单元格编辑细节,增强与 Navicat 编辑习惯的一致性

🔧 fix(sidebar-connection): 修复多数据源切换后旧连接节点无响应问题

- 修复新建并连接新数据源后,旧数据源点击无响应的问题

 feat(tab-manager): 表与设计标签支持环境前缀显示

- 基于连接名识别 DEV/UAT/PROD/SIT/STG/TEST 环境标记
- 仅对 table/design 标签添加环境前缀,查询等标签保持原样
- 无法识别标准环境时回退显示连接名,提升多环境可辨识性

 feat(connection-config): 新增连接URI复制解析并支持MySQL/Mongo主从配置

- 连接弹窗新增 URI 生成、解析、复制能力,支持参数回填
- MySQL 支持多地址主从拓扑、从库地址列表与从库独立凭据
- Mongo 支持多节点配置、replicaSet、authSource、readPreference
- 扩展前后端连接配置模型并同步 Wails 生成类型文件
- 后端接入主从凭据回退策略,保持旧配置兼容

 feat(mongodb-replica): 对齐Navicat主从配置并补齐成员发现能力

- 新增 mongoSrv、mongoAuthMechanism、savePassword 配置项
- 支持 mongodb+srv URI 构建与解析,并透传 authMechanism
- 新增 MongoDiscoverMembers 接口,返回成员与状态信息
- 驱动侧实现 replSetGetStatus -> hello/isMaster 回退发现链路
- 前端弹窗新增 SRV 开关、验证方式、成员发现按钮与状态表
- 增加 SRV+SSH 冲突提示与后端保护,避免无效连接路径

🔧 fix(app-error-text): 修复连接测试错误信息乱码并完善日志提示

- 新增错误文本编码纠正能力,处理混合编码导致的中文乱码
- 连接错误提示统一走 normalizeErrorMessage 输出
- 增加 GB18030 纠正相关单元测试覆盖 PostgreSQL 认证失败场景
- go.mod 显式引入 golang.org/x/text 依赖

 feat(filter-panel): 筛选条件支持启用停用与批量开关

- 筛选条件新增 enabled 状态,支持按条件勾选启用/停用
- 筛选面板新增“全启用”“全停用”快捷操作
- SQL 组装时自动跳过已停用条件,保留条件内容便于复用
- 同步 DataViewer 与 SQL 工具层类型,确保筛选链路一致性

🔧 fix(connection-modal-scroll): 修复连接弹窗滚动行为并去除外层滚动条

- 连接配置步骤设置弹窗 body 最大高度与内部滚动
- 为连接弹窗增加专用 wrapClassName 并禁用外层滚动
- 修复出现双滚动条的问题,确保仅保留弹窗内部滚动条
2026-02-09 21:54:11 +08:00
2026-01-31 17:30:48 +08:00

GoNavi - 现代化的轻量级数据库管理工具

Go Version Wails Version React Version License Build Status

GoNavi 是一款基于 Wails (Go)React 构建的现代化、高性能、跨平台数据库管理客户端。它旨在提供如原生应用般流畅的用户体验,同时保持极低的资源占用。

相比于 Electron 应用GoNavi 的体积更小(~10MB启动速度更快内存占用更低。

📸 项目截图

image image image
image image image

核心特性

🚀 极致性能

  • 零卡顿交互:采用独创的 "幽灵拖拽" (Ghost Resizing) 技术,在包含数万行数据的表格中调整列宽,依然保持 60fps+ 的丝滑体验。
  • 虚拟滚动:轻松处理海量数据展示,拒绝卡顿。

🔌 多数据库支持

  • MySQL:完整支持,涵盖数据编辑、结构管理与导入导出。
  • PostgreSQL:数据查看与编辑支持,事务提交能力持续完善。
  • SQLite:本地文件数据库支持。
  • Oracle:基础数据访问与编辑支持。
  • Dameng达梦:基础数据访问与编辑支持。
  • Kingbase人大金仓:基础数据访问与编辑支持。
  • TDengine:时序数据库连接、库表浏览与 SQL 查询支持。
  • RedisKey/Value 浏览、命令执行、视图与编码切换。
  • 自定义驱动:支持配置 Driver/DSN 接入更多数据源。
  • SSH 隧道:内置 SSH 隧道支持,安全连接内网数据库。

📊 强大的数据管理 (DataGrid)

  • 所见即所得编辑:直接在表格中双击单元格修改数据。
  • 批量事务操作:支持批量新增、修改、删除,一键提交或回滚事务。
  • 大字段编辑:双击大字段自动打开弹窗编辑器,避免卡顿。
  • 右键上下文菜单:快速设置 NULL、复制/导出等操作。
  • 智能上下文:自动识别单表查询,解锁编辑功能;复杂查询自动切换为只读模式。
  • 批量导出/备份:支持表与数据库的批量导出/备份。
  • 数据导出:支持 CSV、Excel (XLSX)、JSON、Markdown 等格式。

🧰 批量导出/备份

  • 数据库批量导出:支持结构导出与结构+数据备份。
  • 表批量导出:支持多表一键导出/备份。
  • 智能上下文检测:自动判断目标范围,避免误操作。

🧩 Redis 视图与编码

  • 视图模式切换:自动/原始文本/UTF-8/十六进制多模式显示。
  • 智能解码:针对二进制值进行 UTF-8 质量判定与中文字符识别。
  • 命令执行:内置命令面板快速操作。

🔄 数据同步与导入导出

  • 连接配置导入/导出:支持配置 JSON 导入导出,便于团队共享。
  • 数据同步:内置数据同步面板,支持跨库同步任务配置。

🆙 在线更新

  • 自动更新:启动/定时/手动检查更新,自动下载并提示重启完成更新。

🧾 可观测性

  • SQL 执行日志:实时查看 SQL 与执行耗时,便于排障与优化。

📝 智能 SQL 编辑器

  • Monaco Editor 内核:集成 VS Code 同款编辑器,体验极佳。
  • 智能补全:自动感知当前连接上下文,提供数据库、表名、字段名的实时补全。
  • 多标签页:支持多窗口并行操作,像浏览器一样管理你的查询会话。

🎨 现代化 UI

  • Ant Design 5:企业级 UI 设计语言。
  • 暗黑模式:内置深色/浅色主题切换,适应不同光照环境。
  • 响应式布局:灵活的侧边栏与布局调整。

🛠️ 技术栈

  • 后端 (Backend): Go 1.24 + Wails v2
  • 前端 (Frontend): React 18 + TypeScript + Vite
  • UI 框架: Ant Design 5
  • 状态管理: Zustand
  • 编辑器: Monaco Editor

📦 安装与运行

前置要求

  • Go 1.21+
  • Node.js 18+
  • Wails CLI: go install github.com/wailsapp/wails/v2/cmd/wails@latest

开发模式

# 克隆项目
git clone https://github.com/Syngnat/GoNavi.git
cd GoNavi

# 启动开发服务器 (支持热重载)
wails dev

编译构建

# 构建当前平台的可执行文件
wails build

# 清理并构建 (推荐发布前使用)
wails build -clean

构建产物将位于 build/bin 目录下。

跨平台编译 (GitHub Actions)

本项目内置了 GitHub Actions 流水线Push v* 格式的 Tag 即可自动触发构建并发布 Release。 支持构建:

  • macOS (AMD64 / ARM64)
  • Windows (AMD64)

常见问题 (Troubleshooting)

macOS 提示 "应用已损坏,无法打开"

由于本项目尚未购买 Apple 开发者证书进行签名NotarizationmacOS 的 Gatekeeper 安全机制可能会拦截应用的运行。请按照以下步骤解决:

  1. 将下载的 GoNavi.app 拖入 应用程序 文件夹。
  2. 打开 终端 (Terminal)
  3. 复制并执行以下命令(输入密码时不会显示):
    sudo xattr -rd com.apple.quarantine /Applications/GoNavi.app
    
  4. 或者:在 Finder 中右键点击应用图标,按住 Control 键选择 打开,然后在弹出的窗口中再次点击 打开

🤝 贡献指南

欢迎提交 Issue 和 Pull Request

  1. Fork 本仓库
  2. 创建你的特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交你的改动 (git commit -m 'feat: Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 开启一个 Pull Request

📄 开源协议

本项目采用 Apache-2.0 协议 开源。

Description
现代化、原生体验的数据库管理工具,支持 MySQL、PostgreSQL、SQLite 等数据库,采用 Go 后端 + Wails + React 前端构建,启动快、体积小、性能强。
Readme Apache-2.0 16 MiB
Languages
TypeScript 52.9%
Go 44.1%
Java 1.3%
Shell 0.5%
CSS 0.5%
Other 0.7%