From a0b2d44ec6ae9663c3b64275d4ea189c80273050 Mon Sep 17 00:00:00 2001 From: Codex Date: Wed, 22 Jul 2026 18:52:09 +0800 Subject: [PATCH] docs(private-zoom): document shared-db rollout order --- .../2026-07-22-private-zoom-rename.md | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/docs/frontend-integration/2026-07-22-private-zoom-rename.md b/docs/frontend-integration/2026-07-22-private-zoom-rename.md index 51f3d884..999e59b5 100644 --- a/docs/frontend-integration/2026-07-22-private-zoom-rename.md +++ b/docs/frontend-integration/2026-07-22-private-zoom-rename.md @@ -113,7 +113,13 @@ POST /api/private-zoom/moments/{momentId}/unlock ## 6. 数据库迁移 -发布前执行 unified 仓库中的: +因为 `pre` 与生产当前共用 `https://dbapi.banlv-ai.com`,预发部署前先执行 unified 仓库中的临时桥接脚本: + +```text +database/private-zoom-bridge.sql +``` + +桥接脚本会创建新表并在切换窗口内保持新旧解锁写入双向同步。生产前后端全部切换完成后,再执行最终迁移: ```text database/private-zoom-migration.sql @@ -126,6 +132,7 @@ database/private-zoom-migration.sql - 合并 `users.preferences` 中历史解锁键,防止已解锁内容重新锁定。 - 把 `credit_ledger` 历史分类迁移到 `private_zoom` 和 `private_zoom_moment`。 - 定向迁移历史埋点键、页面 URL 和系统媒体路径,不改写用户聊天正文。 +- 删除切换窗口使用的双写触发器和函数。 - 支持重复执行。 ## 7. 兼容性与发布顺序 @@ -133,11 +140,13 @@ database/private-zoom-migration.sql 这是破坏性命名修正,不保留旧 API、旧页面路由或旧公开枚举作为正式兼容层。必须按以下顺序发布: 1. 备份数据库并记录当前 unified、前端和 Manager 版本。 -2. 执行 `database/private-zoom-migration.sql`。 +2. 执行 `database/private-zoom-bridge.sql`,确认新旧表双向写入一致。 3. 部署 unified `pre`,验证所有 `/api/private-zoom/*` 接口。 4. 部署前端 `pre`,验证页面、外部入口、解锁和支付回跳。 5. Manager 更新后验证积分用途显示为新分类。 -6. `pre` 验证通过后,同一提交集晋级生产。 +6. `pre` 验证通过后,先启动新生产后端并临时配置旧 API 到新 API 的 Nginx 转发。 +7. 切换生产后端,再部署同批次生产前端;确认新前端只调用 `/api/private-zoom/*`。 +8. 删除临时 Nginx 转发,执行 `database/private-zoom-migration.sql` 清理旧数据库对象。 ## 8. 错误与界面状态 @@ -168,7 +177,7 @@ database/private-zoom-migration.sql ## 11. 回滚影响 -仅回滚应用镜像而不回滚数据库,会让旧版本无法读取新表名,因此生产回滚必须同时执行 unified 仓库中的 `database/private-zoom-rollback.sql`。回滚前应停止写入,先保存切换后的新增解锁记录,再执行逆向迁移并恢复旧应用版本。不得只恢复前端或只恢复 unified。 +最终迁移执行前可直接恢复旧应用,桥接表会保留双向一致的数据。最终迁移执行后,回滚必须同时执行 unified 仓库中的 `database/private-zoom-rollback.sql`。回滚前应停止写入,先保存切换后的新增解锁记录,再执行逆向迁移并恢复旧应用版本。不得只恢复前端或只恢复 unified。 ## 12. 待确认事项