dy-dashboard/vault/知识库/工作指南/训练记录/2026-07-14-测试环境打包部署到生产.md
2026-10-28 11:14:17 +08:00

2.0 KiB
Raw Permalink Blame History

2. 反馈图片异常排查 + SSH隧道互通 + 打包规则修正

旭东 → OpenClaw:

现在测试问题里面图片为什么还是看不了 刚刚胡孟怡账号重新上传了图片附件,只有她账号是能看到图片,其他帐号都无法看见这张图片 我在测试环境系统里面新增的问题反馈,上传的图片,在正式环境系统里面也要能看见问题和图片

OpenClaw 响应:

图片问题排查:

  • 发现7月13日18:39之后的所有图片附件上传都能写入数据库记录但文件没保存到磁盘
  • 原因是反馈处于 pending(待审核)状态,只有提交者和超级管理员能看到,其他人看不到该项
  • 修复:审核通过 ID 231 反馈(改为 active),清空无效附件记录,让用户重新上传

SSH隧道互通方案:

  • 建立本地SSH隧道:测试环境 127.0.0.1:3307 → 生产环境 127.0.0.1:3306
  • 创建 services/prod_db.py 模块,自动检测3307(隧道)和3306(本地)端口
  • 修改 routes/feedback.py 改用 prod_query 读写生产数据库
  • 上传附件时自动 scp 同步到生产环境
  • 已有 sync_feedback_files.sh(每分钟双向rsync)保持附件目录一致
  • 隧道保活 cron(每5分钟检测)

prod_db.py 特点:

  • 使用 _detect_port() 自动检测3307隧道是否可用,不可用回退3306
  • 自定义 _make_conn() 函数解决 PooledDB + caching_sha2_password 兼容问题

打包脚本规则修正:

  • 知识库复制到 vault/知识库/ 子目录(修正目录层级)
  • 不再覆盖生产数据库(默认只部署代码+知识库+库结构)
  • --db 参数可全量覆盖数据库(含数据)
  • sed 替换 CREATE TABLE IF NOT EXISTS 安全更新结构

生产环境异常修复:

  • 知识库显示为空:vault/ 目录结构错误,内容移至 vault/知识库/ 子目录
  • feedback 模块导入 prod_db 连接3307失败:生产环境无隧道,通过 _detect_port() 自动回退3306