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

36 lines
2.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

### 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