左辰勇
70aa8dcde2
fix(alembic): 合并 88f2380 引入的双 head,恢复 upgrade head 可用
88f2380 把 origin/main 合进本分支后,两条迁移线在 git 上汇合了、在 alembic 图上
却没有:本分支的 ad_reward_boost_round_id → drop_signin_boost_record 与 main 的
merge_active_phone 同从 comparison_llm_cost 分叉,此后再无迁移 revise
drop_signin_boost_record,它成了悬空的第二个 head。
后果:`alembic upgrade head`(单数)报 "Multiple head revisions are present"。
按 CLAUDE.md,run.sh 启动即自动迁移 —— app server 直接起不来,CI/线上同样报错。
用标准 merge revision 收敛(而非改 down_revision 指向),保留两侧作者文件不动。
纯 merge,无表结构/数据改动。
验证:alembic heads 恰好一个 merge_signin_boost_main;空库 alembic upgrade head
全链路跑通,current 停在 (head) (mergepoint);ruff 通过;pytest 435 passed
(6 个既有失败,与本次改动前一致)。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-21 20:27:14 +08:00
..
2026-05-23 17:37:18 +08:00
2026-06-08 05:54:55 +08:00
2026-06-23 17:58:30 +08:00
2026-06-27 03:06:53 +08:00
2026-06-02 09:53:25 +08:00
2026-06-10 22:49:33 +08:00
2026-06-08 00:16:25 +08:00
2026-07-09 17:31:24 +08:00
2026-07-18 19:11:45 +08:00
2026-07-01 20:21:34 +08:00
2026-06-26 23:33:31 +08:00
2026-06-06 00:42:39 +08:00
2026-06-16 01:39:05 +08:00
2026-06-10 02:28:56 +08:00
2026-06-01 22:23:15 +08:00
2026-07-11 13:47:12 +08:00
2026-06-09 01:56:47 +08:00
2026-06-23 17:33:38 +08:00
2026-06-29 09:54:13 +08:00
2026-06-15 23:13:14 +08:00
2026-07-20 16:55:25 +08:00
2026-05-27 21:04:03 +08:00
2026-06-21 00:16:40 +08:00
2026-07-05 09:46:19 +08:00
2026-06-04 03:02:41 +08:00
2026-07-09 01:09:03 +08:00
2026-07-05 09:46:19 +08:00
2026-07-21 13:52:40 +08:00
2026-06-06 04:13:08 +08:00
2026-06-17 10:00:29 +08:00
2026-06-06 00:42:39 +08:00
2026-06-24 20:50:21 +08:00
2026-06-26 23:56:29 +08:00
2026-05-27 21:04:03 +08:00
2026-06-21 00:16:40 +08:00
2026-06-07 23:17:27 +08:00
2026-06-09 01:56:47 +08:00
2026-06-13 03:53:43 +08:00
2026-06-17 22:33:33 +08:00
2026-07-13 17:46:11 +08:00
2026-06-01 22:23:15 +08:00
2026-07-05 09:46:19 +08:00
2026-06-01 22:23:15 +08:00
2026-06-01 22:23:15 +08:00
2026-07-04 02:39:12 +08:00
2026-06-10 22:26:51 +08:00
2026-06-23 17:24:54 +08:00
2026-07-09 17:31:48 +08:00
2026-06-10 16:07:33 +08:00
2026-06-14 23:41:54 +08:00
2026-06-30 22:59:36 +08:00
2026-07-09 17:31:48 +08:00
2026-06-30 22:59:36 +08:00
2026-06-30 22:59:36 +08:00
2026-06-08 03:20:51 +08:00
2026-06-17 21:32:10 +08:00
2026-06-17 10:00:29 +08:00
2026-06-17 10:00:29 +08:00
2026-06-25 17:47:30 +08:00
2026-06-19 11:44:11 +08:00
2026-06-10 22:26:51 +08:00
2026-06-15 23:13:14 +08:00
2026-06-26 15:28:16 +08:00
2026-06-23 17:33:38 +08:00
2026-06-23 17:33:38 +08:00
2026-07-20 16:55:25 +08:00
2026-06-12 00:51:47 +08:00
2026-06-06 04:13:08 +08:00
2026-05-29 15:20:22 +08:00
2026-06-10 15:43:54 +08:00
2026-05-30 18:13:11 +08:00
2026-06-22 23:18:42 +08:00
2026-06-29 23:11:30 +08:00
2026-05-28 22:27:36 +08:00
2026-07-02 19:50:14 +08:00
2026-05-27 21:04:03 +08:00
2026-06-27 02:58:29 +08:00
2026-06-08 04:57:55 +08:00
2026-06-09 21:48:48 +08:00
2026-06-30 21:56:58 +08:00
2026-06-20 13:39:45 +08:00
2026-06-07 23:17:27 +08:00
2026-06-07 23:17:27 +08:00
2026-06-23 21:09:10 +08:00
2026-06-08 00:16:25 +08:00
2026-07-18 19:11:45 +08:00
2026-06-09 18:10:58 +08:00
2026-07-09 17:31:48 +08:00
2026-07-10 19:23:12 +08:00
2026-07-21 20:27:14 +08:00
2026-06-10 18:32:51 +08:00
2026-06-07 23:17:27 +08:00
2026-07-17 21:49:10 +08:00
2026-06-07 23:17:27 +08:00
2026-06-07 23:17:27 +08:00
2026-06-07 23:17:27 +08:00
2026-06-07 03:31:35 +08:00
2026-05-27 21:04:03 +08:00
2026-06-01 21:29:52 +08:00
2026-05-27 21:04:03 +08:00
2026-06-14 01:24:29 +08:00
2026-06-16 01:25:57 +08:00
2026-06-14 01:24:29 +08:00
2026-06-14 01:24:29 +08:00
2026-06-15 18:07:32 +08:00
2026-05-27 21:04:03 +08:00
2026-06-10 22:27:06 +08:00
2026-05-27 21:04:03 +08:00
2026-06-06 18:52:42 +08:00
2026-05-27 21:04:03 +08:00
2026-05-27 21:04:03 +08:00
2026-06-06 04:51:50 +08:00
2026-06-09 01:56:37 +08:00