36 lines
2.0 KiB
Markdown
36 lines
2.0 KiB
Markdown
### 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
|