交付出件箱

← 返回出件箱

致 root:结算发生产,需要你的两件事 + 两个待你确认的问题

来源:dev2 云机会话 · 2026-08-20 自检修订版(v2,修正 v1 的漏项与过度断言)
标注约定:【实测】= 本机命令跑出来的;【记录】= 来自项目台账,我没亲验;【推断】= 逻辑推的,可能错


一、需要你做的两件事

第 1 件:把「结算生产流水线」的代码源切到统一仓

【实测】两条流水线接的是不同的仓:

[settle-prod] 最新 run#7 · 分支 main · 仓库 a7b6e0a0129631e95/tongban-settlement.git   ← 旧独立仓
[main]        最新 run#140 · 分支 main · 仓库 e93a7b6e0a0129631e95/doctor-ai-brain.git  ← 统一仓

【实测】settle-prod 最后一次运行是 08-10 17:47(run#7),之后没再跑过。
而结算代码早已合进统一仓。

后果:结算代码合进 doctor-ai-brain 的 main,只是进了总账,
生产上的 settlement-api / settlement-web 容器不会更新。

但先看第二节的问题①,顺序可能要反过来。

第 2 件:生产 nginx 切流 + reload

【记录】台账写明:nginx 未切前把结算合入 main 会致结算全站 404,所以顺序不能反。

🔴 但具体要把 nginx 切成什么样,我不知道,也查不到 —— 这块配置在生产机上,
云机够不着。请你按实际情况定,我不瞎给方案。

⚠️ 附一条踩过的坑(与切流无关、但同属 nginx):部署链只同步配置文件、不重载 nginx。
只要发版动到 settlement/deploy/nginx-settlement.conf,部署完必须手动
nginx -t && nginx -s reload,否则配置落了盘、进程还拿旧的,等于没改。

ℹ️ 原第 3 件「微信支付授权目录」已不需要你做 —— 长官 2026-08-20 告知:
生产网址与测试环境一并配置好了。此项从前置清单移除。
(dev2 无商户平台权限,此条以长官口述为准、未自验;真正生效与否要到
chat.tongban.love 上真发起一次 JSAPI 支付才看得出来。)


二、两个必须你先回答的问题(我判断不了)

问题①:先切源,会不会当场把生产结算退版?

【实测】结算后端文件数:

统一仓 main 上:  145 个
统一仓 test 上:  196 个

也就是说统一仓 main 上的结算代码,比 test 上少 51 个文件。

我没有独立仓的访问权限,所以答不出:
统一仓 main 的结算代码,跟现在生产正在跑的(来自独立仓 main)是不是一致?

请你确认后告诉我顺序,我不猜。

问题②:要晋级到生产的 MR 编号清单

发生产工具规定必须逐个点名(--mr N),没点到的物理上不会进发布分支
—— 这是防止把别的会话未授权的功能顺带发出去。

【记录】待发范围约 #381 → #476,其中结算 25 件是 #464→#475、核心 1 件是 #476。
(这个范围来自交接件,我无法核实。)

【实测】我手上 release-pipeline-status 用的是纯只读 flow 令牌、不含 MR 权限;
Codeup 令牌在你那儿。清单请你给,我不猜。


三、通报:一个 dev2 自己会修的问题(不用你动手)

【实测】生产 main 流水线最近 5 次全红:

run#140  FAIL  08-19 16:52     run#139  FAIL  08-19 02:15
run#138  FAIL  08-18 21:14     run#137  FAIL  08-18 20:58
run#136  FAIL  08-12 17:55

【实测】其中 run#140 的失败日志尾部:

FAILED: Multiple head revisions are present for given argument 'head'
ERROR [alembic.util.messaging] Multiple head revisions are present ...
run user script failed, exit code: 255

⚠️ 老实说:#136~#139 我只看到 FAIL 状态,没拿到失败原因
(工具只给最新一次的日志)。所以"5 次都挂在同一步"是【推断】,不是实测。

【实测】两棵迁移树的 head 数(多头就是 run#140 的直接原因):

统一仓 main 核心 migrations/versions:  68 文件 · heads 2 -> ['phase70_001','store_poster_demo_flag']
统一仓 test 核心 migrations/versions:  69 文件 · heads 3 -> [多一个 'phase66_001']
统一仓 main 结算 migrations:           14 文件 · heads 1   (干净)
统一仓 test 结算 migrations:           23 文件 · heads 1   (干净)

test 比 main 还多一个头 ⇒ 直接发过去只会更糟,不会自愈。核心那棵树我来并头。

🔴 要紧的一点:【实测】容器是 doctor-api Started / doctor-web Started
成功之后,才在迁移步挂掉的。所以网站入口一直是活的、看着没事。
【推断】数据库升级可能从 08-12 起就没成功过 —— 但我没查生产库的实际版本号,
也不排除有人手工跑过 alembic。

如果方便,请帮我查一下生产库这两个值,我好确认到底差多少:

SELECT version_num FROM alembic_version;
SELECT version_num FROM alembic_version_settlement;

(⚠️ 台账记着:健康页的 Alembic 栏有已知 bug,别拿它当准。)


云机环境 · 非验收证据。v3(08-20):微信支付授权目录经长官确认已配置,前置三件降为两件。