132 lines
2.4 KiB
Markdown
132 lines
2.4 KiB
Markdown
# ✅ 修复完成:使用 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
|
||
```
|
||
|
||
### 文件格式
|
||
```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. 启动工具
|
||
```bash
|
||
cd AdminTool
|
||
python admin_gui.py
|
||
```
|
||
|
||
**不会再弹出数据库错误!** ✅
|
||
|
||
### 2. 测试系统
|
||
```bash
|
||
cd AdminTool
|
||
python test_version_system.py
|
||
```
|
||
|
||
应该看到:
|
||
```
|
||
✅ 测试完成!版本管理系统一切正常
|
||
```
|
||
|
||
### 3. 开始部署
|
||
1. 构建前端:`cd Designer && npm run build:core`
|
||
2. 打开 GUI,切换到"自动化部署"
|
||
3. 选择 `dist_core` 目录
|
||
4. 点击"🚀 部署到服务器"
|
||
|
||
---
|
||
|
||
## 🎯 功能验证清单
|
||
|
||
- [x] SSH 连接服务器
|
||
- [x] 创建版本目录
|
||
- [x] 读写 JSON 文件
|
||
- [x] 部署新版本
|
||
- [x] 显示版本历史
|
||
- [x] 回滚到历史版本
|
||
- [x] 删除旧版本
|
||
|
||
---
|
||
|
||
## 📝 优势对比
|
||
|
||
### 之前(MySQL)
|
||
- ❌ 需要 MySQL 服务器
|
||
- ❌ 需要配置数据库连接
|
||
- ❌ 需要 SSH 隧道
|
||
- ❌ 依赖多(pymysql, sshtunnel)
|
||
- ❌ Docker 端口映射问题
|
||
|
||
### 现在(JSON 文件)
|
||
- ✅ 只需要 SSH 访问
|
||
- ✅ 自动创建文件
|
||
- ✅ 依赖少(只需 paramiko)
|
||
- ✅ 简单可靠
|
||
- ✅ 易于备份和查看
|
||
|
||
---
|
||
|
||
## 🎊 总结
|
||
|
||
**问题已完全解决!** 现在可以:
|
||
1. 正常启动 GUI(不会弹窗)
|
||
2. 部署新版本
|
||
3. 管理版本历史
|
||
4. 随时回滚
|
||
|
||
**下一步**:开始使用部署功能!
|
||
|