Files
DP/tempdocs/修复说明.md
zuowei1216 1b19ff1b92 20251222
2025-12-22 21:06:29 +08:00

2.4 KiB
Raw Blame History

修复完成:使用 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. 开始部署

  1. 构建前端:cd Designer && npm run build:core
  2. 打开 GUI切换到"自动化部署"
  3. 选择 dist_core 目录
  4. 点击"🚀 部署到服务器"

🎯 功能验证清单

  • SSH 连接服务器
  • 创建版本目录
  • 读写 JSON 文件
  • 部署新版本
  • 显示版本历史
  • 回滚到历史版本
  • 删除旧版本

📝 优势对比

之前MySQL

  • 需要 MySQL 服务器
  • 需要配置数据库连接
  • 需要 SSH 隧道
  • 依赖多pymysql, sshtunnel
  • Docker 端口映射问题

现在JSON 文件)

  • 只需要 SSH 访问
  • 自动创建文件
  • 依赖少(只需 paramiko
  • 简单可靠
  • 易于备份和查看

🎊 总结

问题已完全解决! 现在可以:

  1. 正常启动 GUI不会弹窗
  2. 部署新版本
  3. 管理版本历史
  4. 随时回滚

下一步:开始使用部署功能!