初始化
This commit is contained in:
96
memory/session-20260628-4.md
Normal file
96
memory/session-20260628-4.md
Normal file
@@ -0,0 +1,96 @@
|
||||
---
|
||||
name: session-20260628-4
|
||||
description: 2026-06-28 第4次会话 — 切换系统按钮 + 目录整理 + 项目/部署文档 + 文件服务接入与回退
|
||||
metadata:
|
||||
type: session
|
||||
date: 2026-06-28
|
||||
sessionNumber: 4
|
||||
startTime: 2026-06-28T04:45:00+08:00
|
||||
---
|
||||
|
||||
# 2026-06-28 第4次会话
|
||||
|
||||
## 会话摘要
|
||||
1. 顶栏添加「切换系统」按钮 → `https://web.gw.zgitm.com/select`
|
||||
2. 项目目录彻底整理:backend/ frontend/ deploy/ 三目录分离
|
||||
3. 编写项目文档 `docs/README.md` 和部署文档 `docs/DEPLOY.md`
|
||||
4. 图片存储接入文件服务 → 部署排错 → 最终回退到 DB 存储,保留文件服务代码备用
|
||||
|
||||
## 代码改动
|
||||
|
||||
### 1. src/App.vue — 顶栏右侧加「切换系统」按钮
|
||||
- **位置**: 顶栏 [☰ MoKeeText] 右侧空白
|
||||
- **跳转**: `https://web.gw.zgitm.com/select`(外部链接,非 Vue 路由)
|
||||
- **样式**: ghost 风格 `.switch-system-btn`,hover 变蓝
|
||||
|
||||
### 2. 项目目录整理
|
||||
|
||||
**整理前** → 根目录混在一起(app.py / index.html / Dockerfile / routes / src / static 等全在一个目录)
|
||||
|
||||
**整理后**:
|
||||
```
|
||||
mokeeText/
|
||||
├── backend/ # FastAPI 后端
|
||||
│ ├── app.py, models.py, config.py, logger.py, init_db.py
|
||||
│ ├── file_service.py # 文件服务客户端(备用,当前未启用)
|
||||
│ ├── requirements.txt, Dockerfile, .dockerignore
|
||||
│ ├── routes/ # notes, websites, import_api, upload, share
|
||||
│ └── middleware/ # user_context
|
||||
├── frontend/ # Vue 3 前端
|
||||
│ ├── index.html, package.json, vite.config.js
|
||||
│ ├── Dockerfile.frontend, nginx.conf, .dockerignore
|
||||
│ ├── src/ # Vue 源码
|
||||
│ └── static/ # dist + js/vendor + css + uploads
|
||||
├── deploy/ # 部署
|
||||
│ ├── docker-compose.yml
|
||||
│ └── deploy.py # 日常部署(SSH 密钥认证)
|
||||
├── docs/
|
||||
│ ├── README.md # 项目文档
|
||||
│ └── DEPLOY.md # 部署文档
|
||||
├── memory/ # 会话记忆
|
||||
└── templates/ # 旧 Jinja2 模板(已废弃)
|
||||
```
|
||||
|
||||
### 3. 配置更新
|
||||
- **docker-compose.yml**: build context → `./backend` / `./frontend`
|
||||
- **Dockerfile**: 新增 COPY file_service.py
|
||||
- **deploy.py**: 路径更新 + 改用 SSH 密钥(无密码),运行: `python deploy/deploy.py`
|
||||
- **.dockerignore**: 分别放在 backend/ 和 frontend/ 下
|
||||
|
||||
### 4. 图片存储 — 接入文件服务后又回退
|
||||
|
||||
**过程**:
|
||||
1. 新增 `backend/file_service.py` — 封装文件服务 API(系统码 `mokeetext-edit`,目录 `/mokeetext-images/`)
|
||||
2. 修改 models.py — Upload 表新增 `file_id` 字段,data 改为 nullable
|
||||
3. 修改 init_db.py — 新增 migrate() ALTER TABLE
|
||||
4. 改造 upload.py — 上传走文件服务,读取兼容 file_id + blob 双通道
|
||||
5. 添加 requests 依赖
|
||||
|
||||
**排错过程**:
|
||||
- 🔴 Dockerfile 遗漏了 COPY file_service.py → 容器内无此文件,上传走旧代码
|
||||
- 🔴 SCP 时把 routes/upload.py 传到 backend/ 根目录而非 backend/routes/ 子目录 → 容器用的是旧代码
|
||||
- ✅ `--no-cache` 强制重建 + 修正文件路径后成功接入,文件服务出现 2 张图片
|
||||
|
||||
**最终决定**: 用户要求恢复 DB 存储,保留文件服务代码
|
||||
- `upload.py` 改回 DB LONGBLOB 存储
|
||||
- 读取优先 blob,file_id 存在时走文件服务(兼容之前 2 张图)
|
||||
- `file_service.py` 保留不删,注释标注备用切换方式
|
||||
|
||||
## 当前状态
|
||||
- **图片存储**: MySQL LONGBLOB(主) + 文件服务兼容读取(备用)
|
||||
- **file_service.py**: 保留,如需切换取消注释即可
|
||||
|
||||
## 部署
|
||||
- ✅ 目录迁移(服务器同步整理)
|
||||
- ✅ Docker 重建(backend + frontend 均在运行)
|
||||
- ✅ 数据库迁移(file_id 列已添加)
|
||||
- ✅ deploy.py 改用 SSH 密钥认证
|
||||
- ✅ 服务器 SSH 密钥认证正常工作
|
||||
|
||||
## 重要资产
|
||||
- 文件服务 API 文档: `E:\AI\claude\new\fileServer\goFileService\docs\api.md`
|
||||
- 参考项目 control-web: `E:\AI\claude\new\deployServer\control-web`
|
||||
- 项目文档: `docs/README.md` + `docs/DEPLOY.md`
|
||||
|
||||
## 待处理
|
||||
- [ ] 旧 `templates/` 目录可删除(Jinja2 已废弃)
|
||||
Reference in New Issue
Block a user