2.4 KiB
2.4 KiB
✅ 修复完成:使用 JSON 文件替代 MySQL
🔧 问题与解决
原问题
启动时弹出错误:Can't connect to MySQL server on 'localhost'
根本原因
- MySQL 运行在 Docker 容器中,端口未映射到宿主机
- 远程 MySQL 连接复杂,需要 SSH 隧道
最终方案 ✅
使用 SSH + JSON 文件存储版本信息
- ✅ 不需要配置 MySQL
- ✅ 不需要额外的库(sshtunnel, pymysql)
- ✅ 更简单、更可靠
- ✅ 版本信息存储在服务器:
/var/www/app_versions/.deployments.json
📦 当前依赖(精简版)
PyQt5 # GUI 界面
requests # API 请求
paramiko # SSH 连接
🗄️ 数据存储方式
JSON 文件位置
/var/www/app_versions/.deployments.json
文件格式
{
"deployments": [
{
"version": "20231220_153045",
"deployed_at": "2023-12-20 15:30:45",
"is_current": true,
"file_size_mb": 12.5,
"comment": "修复主题同步bug"
},
{
"version": "20231220_102030",
"deployed_at": "2023-12-20 10:20:30",
"is_current": false,
"file_size_mb": 12.3,
"comment": "初始版本"
}
]
}
🚀 现在可以正常使用
1. 启动工具
cd AdminTool
python admin_gui.py
不会再弹出数据库错误! ✅
2. 测试系统
cd AdminTool
python test_version_system.py
应该看到:
✅ 测试完成!版本管理系统一切正常
3. 开始部署
- 构建前端:
cd Designer && npm run build:core - 打开 GUI,切换到"自动化部署"
- 选择
dist_core目录 - 点击"🚀 部署到服务器"
🎯 功能验证清单
- SSH 连接服务器
- 创建版本目录
- 读写 JSON 文件
- 部署新版本
- 显示版本历史
- 回滚到历史版本
- 删除旧版本
📝 优势对比
之前(MySQL)
- ❌ 需要 MySQL 服务器
- ❌ 需要配置数据库连接
- ❌ 需要 SSH 隧道
- ❌ 依赖多(pymysql, sshtunnel)
- ❌ Docker 端口映射问题
现在(JSON 文件)
- ✅ 只需要 SSH 访问
- ✅ 自动创建文件
- ✅ 依赖少(只需 paramiko)
- ✅ 简单可靠
- ✅ 易于备份和查看
🎊 总结
问题已完全解决! 现在可以:
- 正常启动 GUI(不会弹窗)
- 部署新版本
- 管理版本历史
- 随时回滚
下一步:开始使用部署功能!