Web 可视化界面
SQL-Diff 提供了现代化的 Web 可视化界面,让您可以通过浏览器进行表结构比对和 AI 功能操作。
启动 Web 服务
使用 web 子命令启动 Web 服务:
bash
# 启动默认端口 (8848)
sql-diff web
# 指定端口
sql-diff web --port 9000服务启动后会自动打开默认浏览器访问 Web 界面。
功能特性
🎯 服务单例检测
- 自动检测是否已有服务运行
- 避免重复启动多个实例
- 自动打开已运行的服务页面
🌐 端口自动检测
- 自动检测端口是否被占用
- 自动寻找可用端口
- 智能端口分配
🌗 主题切换
- 支持浅色/深色模式
- 自动适配系统主题偏好
- 主题状态持久化保存
界面功能
1. 表结构比对
在 "表结构比对" 页面,您可以:
- 粘贴源表和目标表的 CREATE TABLE 语句
- 实时预览表结构
- 启用 AI 智能分析
- 一键生成 DDL 语句
2. AI 生成 CREATE TABLE
在 "AI 生成 CREATE" 页面,您可以:
- 输入自然语言描述表结构需求
- AI 自动生成完整的 CREATE TABLE 语句
- 包含合理的字段类型、索引和注释
3. AI 生成 ALTER TABLE
在 "AI 生成 ALTER" 页面,您可以:
- 粘贴现有表的 CREATE TABLE 语句
- 描述需要的修改内容
- AI 生成相应的 ALTER TABLE 语句
4. 配置管理
在 "配置" 页面,您可以:
- 管理 AI 相关配置
- 设置 API Key、提供商、模型等
- 保存到配置文件或生成环境变量命令
使用示例
启动服务
bash
$ sql-diff web
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
SQL-Diff Web 启动
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✓ 服务已在运行中 (PID: 12345, 端口: 8848)
🌐 正在打开浏览器...
✓ 浏览器已打开表结构比对
- 在源表输入框中粘贴源表 SQL
- 在目标表输入框中粘贴目标表 SQL
- 选择是否启用 AI 分析
- 点击 "开始比对" 按钮
- 查看生成的 DDL 语句和 AI 分析结果
AI 生成表结构
- 在 "AI 生成 CREATE" 页面输入描述
- 点击 "生成" 按钮
- 查看 AI 生成的完整 CREATE TABLE 语句
配置管理
- 在 "配置" 页面填写 AI 相关参数
- 选择保存方式(配置文件或环境变量)
- 点击 "保存配置"
- 配置将在后续操作中自动使用
技术实现
前端技术栈
- 框架: Tailwind CSS + DaisyUI
- 图标: Lucide Icons
- 字体: Inter (正文) + JetBrains Mono (代码)
- 响应式: 支持各种屏幕尺寸
后端实现
- 嵌入静态资源: 使用 Go embed 将前端资源嵌入二进制文件
- API 设计: RESTful 风格接口
- 服务管理: PID 文件管理服务状态
- CORS 支持: 仅允许本地访问确保安全
安全性
- 仅绑定本地地址 (127.0.0.1)
- CORS 限制仅允许本地访问
- 配置信息本地存储
- 服务单例确保资源不冲突