项目背景:被迫创新的起点

作为开发者,我们都有过这样的经历:公司政策突然收紧,商业软件许可证成本飙升,或者某些工具在特定环境下无法使用。正是在这样的背景下,CatAIDBViewer应运而生。

当熟悉的Navicat等商业数据库管理工具不再可用时,我们面临着一个选择:是寻找其他替代品,还是自己动手打造一个真正符合需求的工具?选择了后者,并且在AI的助力下,我们成功开发出了这款轻量级但功能完备的数据库管理工具。

产品定位:开发者友好的数据库客户端

CatAIDBViewer(乖猫数据库查看器)是一款基于PyQt6和SQLAlchemy构建的桌面数据库客户端,专为开发者和数据库管理员设计。它的核心理念是:

  • 轻量级但不简陋:保持小巧体积的同时提供完整的数据库管理功能
  • 开发者友好:代码结构清晰,易于扩展和定制
  • 跨平台兼容:支持Windows、macOS和Linux
  • 多数据库支持:无缝连接SQLite、MySQL和PostgreSQL

下载地址

AI DB Viewer

核心功能展示

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功能:

  1. 上下文感知:AI能够理解当前数据库的表结构
  2. 多语言支持:支持中文和英文的自然语言输入
  3. 实时流式输出:可以观察AI的推理过程
  4. 智能纠错:对模糊描述进行合理推断

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可视化客户端工具

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐