CatAIDBViewer:当Navicat不让用时,AI助力打造的轻量级数据库管理神器
CatAIDBViewer是一款开源免费的轻量级数据库管理工具,专为开发者设计。在商业软件使用受限的背景下,该工具基于PyQt6和SQLAlchemy开发,支持SQLite、MySQL和PostgreSQL,具备跨平台兼容性。核心功能包括智能SQL编辑器、可视化模式查看器和多格式数据导出,特别集成了AI驱动的自然语言转SQL能力。采用分层架构设计,支持OpenAI等多种AI服务配置,同时注重连接安
项目背景:被迫创新的起点
作为开发者,我们都有过这样的经历:公司政策突然收紧,商业软件许可证成本飙升,或者某些工具在特定环境下无法使用。正是在这样的背景下,CatAIDBViewer应运而生。
当熟悉的Navicat等商业数据库管理工具不再可用时,我们面临着一个选择:是寻找其他替代品,还是自己动手打造一个真正符合需求的工具?选择了后者,并且在AI的助力下,我们成功开发出了这款轻量级但功能完备的数据库管理工具。
产品定位:开发者友好的数据库客户端
CatAIDBViewer(乖猫数据库查看器)是一款基于PyQt6和SQLAlchemy构建的桌面数据库客户端,专为开发者和数据库管理员设计。它的核心理念是:
- 轻量级但不简陋:保持小巧体积的同时提供完整的数据库管理功能
- 开发者友好:代码结构清晰,易于扩展和定制
- 跨平台兼容:支持Windows、macOS和Linux
- 多数据库支持:无缝连接SQLite、MySQL和PostgreSQL
下载地址
核心功能展示
1. 直观的主界面设计
主界面采用经典的三栏布局:
- 左侧连接面板:管理多个数据库连接,支持连接测试和快速切换
- 中央SQL编辑器:功能强大的代码编辑器,支持语法高亮和智能补全
- 底部结果展示:以表格形式展示查询结果,支持排序、筛选和导出
这种布局既熟悉又高效,让从其他数据库工具迁移过来的用户能够快速上手。
2. 强大的SQL编辑器
编辑器是整个工具的核心,具备以下特性:
智能语法高亮
- 关键字、函数、字符串、数字的差异化高亮
- 支持单行和多行注释的识别
- 自适应深色/浅色主题
代码辅助功能
- 行号显示:方便定位和调试
- 当前行高亮:清晰显示光标位置
- 智能缩进:保持代码格式整洁
AI驱动的自然语言转SQL
这是CatAIDBViewer的一大亮点功能。点击"NL → SQL"按钮,可以:
- 输入自然语言描述(支持中英文)
- AI实时生成对应的SQL语句
- 支持流式输出,观察AI的"思考"过程
- 自动包含当前数据库的架构信息,生成更准确的SQL
示例输入:"查询2024年销售额最高的前10个客户"
AI输出:SELECT customer_name, SUM(amount) as total_sales
FROM orders
WHERE YEAR(order_date) = 2024
GROUP BY customer_id, customer_name
ORDER BY total_sales DESC
LIMIT 10;
SQL美化功能
- 一键格式化SQL代码
- 支持关键字大写、统一缩进
- 基于sqlparse库的专业格式化
3. 全面的模式查看器
模式查看器提供数据库结构的完整视图:
- 表结构详情:列名、数据类型、约束条件
- 索引信息:主键、外键、唯一索引
- CREATE语句生成:自动生成建表语句
- 关系图谱:可视化表间关系(计划功能)
这个功能对于理解复杂数据库结构、进行数据建模分析特别有用。
4. 灵活的数据导出
支持多种格式的数据导出:
- CSV导出:可配置分隔符和编码
- Excel导出:保持格式和数据类型(TODO)
- JSON导出:适合API集成(TODO)
- SQL INSERT语句:便于数据迁移(TODO)
技术架构:现代化的设计理念
分层架构
┌─────────────────┐
│ UI Layer │ PyQt6界面层
├─────────────────┤
│ Business Layer │ 业务逻辑层
├─────────────────┤
│ Data Layer │ SQLAlchemy数据层
└─────────────────┘
核心技术栈
- 界面框架:PyQt6 - 成熟稳定的跨平台GUI框架
- 数据库ORM:SQLAlchemy - 强大的数据库抽象层
- SQL解析:sqlparse - 专业的SQL语法分析
- AI集成:支持OpenAI兼容API - 灵活的AI能力接入
项目结构
src/
├── app.py # 应用入口
├── main_window.py # 主窗口逻辑
├── db/ # 数据库抽象层
│ ├── connection.py # 连接管理
│ ├── executor.py # SQL执行器
│ └── metadata.py # 元数据处理
├── editor/ # 编辑器组件
│ └── sql_editor.py # SQL编辑器
├── ui/ # UI组件
│ ├── connection_dialog.py
│ ├── schema_viewer.py
│ └── ai_settings_dialog.py
└── utils/ # 工具函数
├── ai_client.py # AI客户端
├── csv_export.py # 导出功能
└── settings.py # 配置管理
AI集成:让数据库操作更智能
自然语言到SQL的转换
CatAIDBViewer集成了先进的AI能力,最大的亮点是自然语言转SQL功能:
- 上下文感知:AI能够理解当前数据库的表结构
- 多语言支持:支持中文和英文的自然语言输入
- 实时流式输出:可以观察AI的推理过程
- 智能纠错:对模糊描述进行合理推断
AI配置界面
用户可以灵活配置AI服务:
- 支持OpenAI、Azure OpenAI、国产大模型等
- 可调节模型参数(温度、最大token数等)
- 支持本地模型和云端API
安全性考虑
在企业环境中,数据安全至关重要:
连接安全
- 密码加密存储,支持系统keyring集成
- SSL/TLS连接支持
- 连接超时和重试机制
权限控制
- 只读模式支持
- SQL执行权限控制
- 危险操作二次确认
数据保护
- 本地配置文件加密
- 敏感信息脱敏显示
- 审计日志记录
部署与使用
快速开始
# 克隆项目
git clone https://github.com/isee15/open-navicat.git
# 创建虚拟环境
python -m venv .venv
.venv\Scripts\activate # Windows
# source .venv/bin/activate # Linux/macOS
# 安装依赖
pip install -r requirements.txt
# 安装数据库驱动(按需)
pip install PyMySQL psycopg2-binary
# 运行应用
python src/app.py
打包分发
支持PyInstaller打包为独立可执行文件:
pyinstaller --onefile --windowed src/app.py
与Navicat的对比
功能 | CatAIDBViewer | Navicat |
---|---|---|
价格 | 开源免费 | 商业收费 |
AI集成 | ✅ 自然语言转SQL | ❌ 无 |
自定义扩展 | ✅ 开源可修改 | ❌ 闭源 |
跨平台 | ✅ Python跨平台 | ✅ 支持 |
数据库支持 | MySQL, PostgreSQL, SQLite | 更多数据库 |
可视化设计器 | ❌ 暂无 | ✅ ER图设计 |
数据同步 | ❌ 暂无 | ✅ 支持 |
开源社区
项目地址:GitHub - CatAIDBViewer
问题反馈:Issues
技术交流:Discussions
“当工具成为创新的催化剂,每一行代码都在书写未来。”
实用小工具
App Store 截图生成器、应用图标生成器 、在线图片压缩和 Chrome插件-强制开启复制-护眼模式-网页乱码设置编码
乖猫记账,AI智能分类的最佳聊天记账App。
Elasticsearch可视化客户端工具
更多推荐
所有评论(0)