diff --git a/deploy.sh b/deploy.sh index 91ade65..a4753ff 100755 --- a/deploy.sh +++ b/deploy.sh @@ -91,7 +91,7 @@ case "${APP_ENV}" in TEST_DOMAIN="https://xmclassmate.top" BACKEND_PORT="4433" DB_CONTAINER="1Panel-postgresql-FtMo" - DB_NAME="milkydata" + DB_NAME="milkydata_dev" DB_USER="milkydata" ;; esac diff --git a/docs/BLUE-GREEN-DEPLOY.md b/docs/BLUE-GREEN-DEPLOY.md index 0170785..90fe68e 100644 --- a/docs/BLUE-GREEN-DEPLOY.md +++ b/docs/BLUE-GREEN-DEPLOY.md @@ -17,14 +17,16 @@ ``` 开发环境(dev.xmclassmate.top) — 单实例,无需蓝绿 └── 实例 :8080 - └── 数据库 milkydata_dev + └── 数据库 milkydata_dev(当前与生产共用) 生产环境(xmclassmate.top) — 蓝绿部署 ├── 蓝色实例 :4433(当前活动) ├── 绿色实例 :4434(空闲) - └── 数据库 milkydata(蓝绿共享,名称不变) + └── 数据库 milkydata_dev(蓝绿共享,名称不变) ``` +> **当前状态**:生产环境使用 `milkydata_dev` 数据库(数据已从 `milkydata` 迁移)。开发与生产暂共用同一数据库,后续建议拆分。 + 开发环境不需要蓝绿的原因: | 原因 | 说明 | @@ -42,7 +44,7 @@ | 环境 | 数据库 | 蓝绿实例共同连接 | |------|--------|----------------| | 开发 | `milkydata_dev` | 单实例,无需蓝绿 | -| 生产 | `milkydata` | `DATABASE_URL=postgres://.../milkydata` | +| 生产 | `milkydata_dev` | `DATABASE_URL=postgres://.../milkydata_dev` | 两个蓝绿实例的 service 文件中 `DATABASE_URL` 配置为完全相同的值。切换蓝绿时只改端口,不改数据库连接。 @@ -76,7 +78,7 @@ xmclassmate.top ──→ xmclassmate.top ──→ :4433(蓝) │ │ └──────────┬─────────────┘ ↓ - milkydata(共享数据库) + milkydata_dev(共享数据库) ``` 任何时候只有一个实例接收流量,另一个运行旧版本待命。 @@ -91,7 +93,7 @@ xmclassmate.top ──→ xmclassmate.top ──→ :4433(蓝) └── rust-backend-green.service ← 端口 4434 ``` -每个 service 配置与现有 `rust-backend.service` 一致,仅端口和描述不同,且 `DATABASE_URL` 指向 `milkydata`。 +每个 service 配置一致,仅端口和描述不同,`DATABASE_URL` 均指向 `milkydata_dev`。 ### 新增 OpenResty 配置 @@ -158,7 +160,7 @@ scripts/ ## 数据库迁移注意事项 -蓝绿部署中两个实例共享同一数据库(`milkydata`),迁移脚本需要对**新旧两个版本的代码都兼容**: +蓝绿部署中两个实例共享同一数据库(`milkydata_dev`),迁移脚本需要对**新旧两个版本的代码都兼容**: | 迁移类型 | 兼容性 | 说明 | |---------|--------|------| @@ -204,19 +206,21 @@ scripts/ | # | 步骤 | 说明 | 执行方 | |---|------|------|--------| -| 1 | **生产库跑迁移** | 在 `milkydata` 上执行 `010_rename_paid_fields.sql` 等缺失迁移 | 服务器操作 | +| 1 | **数据迁移** | `milkydata` → `milkydata_dev`(**已完成**) | ✅ 已执行 | | 2 | **准备生产 service 文件** | 填写 `deploy/rust-backend-prod.service` 中的实际值(JWT_SECRET、WECHAT_*、ALIPAY_*、DATABASE_URL) | 开发者 | -| 3 | **部署生产后端** | `./deploy.sh production` 部署新代码到 `:4433` | 服务器操作 | -| 4 | **修改前端 `CURRENT_ENV`** | `env.ts` 中 `CURRENT_ENV = 'production'`(当前已完成) | 开发者 | +| 3 | **部署生产后端** | `./deploy.sh production` 部署新代码到 `:4433`,数据库指向 `milkydata_dev` | 服务器操作 | +| 4 | **修改前端 `CURRENT_ENV`** | `env.ts` 中 `CURRENT_ENV = 'production'` | 开发者 | | 5 | **上传小程序** | 微信开发者工具上传代码(此时连 `xmclassmate.top`) | 开发者 | | 6 | **修改反向代理端口**(如需蓝绿) | 1Panel 中调整 `proxy_pass` 指向新端口 | 服务器操作 | -### 端口映射汇总 +### 数据库配置汇总 | 环境 | 域名 | 数据库 | 当前端口 | 蓝绿备选端口 | |------|------|--------|---------|-------------| | 开发 | `dev.xmclassmate.top` | `milkydata_dev` | `:8080` | 无(单实例) | -| 生产 | `xmclassmate.top` | `milkydata` | `:4433` | `:4434` | +| 生产 | `xmclassmate.top` | `milkydata_dev` | `:4433` | `:4434` | + +> 生产与开发目前共用 `milkydata_dev`。`milkydata` 作为历史数据源保留,不再更新。后续建议创建独立的生产数据库 `milkydata_prod`。 ## 当前是否实施