四个生产工作流改用同一条发布修订:最近一次代码门禁成功的提交可以发布,后面只多文档不再挡住。生产环境拒绝测试验证码。63 个还没上生产的迁移写了分级、演练脚本和首发步骤。没有点任何生产按钮。 自测:发布修订 7 通过,演练安全 3 通过,tsc 0 错,lint 0 error。本机空库演练在服务角色读人物表处按设计停止(退出码 4,其他人物已确认行数为 0)。 Co-Authored-By: Grok (agent loop)
14 KiB
14 KiB
生产待上线迁移(2026-10-14)
对照 origin/main 与本分支基线,frontend/supabase/migrations 新增 63 个文件,没有修改或删除。frontend/db/migrations 在这之间是 0 个。迁移文件本身不改。
分级看的是去掉函数体之后还留在文件顶层的语句。A 是用户能直接看见的改写或删除。B 是范围有限的改写。C 是顶层还有收回权限。D 是只加表、列、函数或授权。
任务书初筛是 A 2、B 5、C 约 45、D 其余。复核后是 A 2、B 7、C 42、D 12。多出来的两条 B 是写在匿名代码块里的标题修补,机械筛会把它们看成没有顶层更新。
重复的时间戳只记录、不改名:20260816010000 有两个文件,20260920010000 有两个文件。仓库里另外还有 20260806010000 和 frontend/db/migrations 的 20260807010000,不在这 63 个里面。
产品需知
20260921010000:以前归档的会话会全部回到列表。这是取消归档功能时已经定过的。20260925020000:人物表里「本人」那一行会删掉,本人资料只留在账户资料里。20260816010000_accept_exact_family_birth_times:家人整点时间会变成已采用。20260822010000:只知道时段的,会补上开始和结束钟点。20260823010000:没有日期的职业、外貌、胎记证据会变成已确认。20260906030000:时间完全未知且还没采用的校正,会先进入时段比较。20260916020000:校正标题修补。生产上预期是 0 行。NOTICE 不是 0 就停下,只报两个数字。20260925010000:自动校正标题会改成带结果。只看 NOTICE 的行数。20260925030000:他人档案里已采用或已确认的时间会退回已申报。演练在跑这个文件之前先数行,预期 0。不是 0 就停下,只把数字报给产品,不要继续。
服务角色读人物表的授权不在这 63 个文件里(BUG-1063)。演练冒烟到这一项会停下。那笔授权进入这一批之前,不要点生产迁移。
63 条
| 文件 | 级 | 作用 | 对生产用户 | 演练要看 |
|---|---|---|---|---|
20260816010000_accept_exact_family_birth_times.sql |
B | 家人给出的整点时间,从「已申报」改成「已采用」。 | 只动还没做过校正、并且本来就是整点的家人时间。 | 迁移前后数 public.profiles 里被这条命中的行。 |
20260816010000_admin_redemption_admin_access.sql |
C | 兑换码管理改成普通后台能力,并收紧权限。 | 不改用户已有的点数或兑换记录。 | 迁移无报错;后台仍只有管理员能进。 |
20260817010000_billing_catalog_admin_runtime_read_policies.sql |
D | 给后台只读价格目录加策略。 | 用户看不到新入口,也不改已有订单。 | 迁移无报错。 |
20260818010000_admin_product_catalog_mutations.sql |
C | 后台改价格目录的权限收紧。 | 不改用户已购内容。 | 迁移无报错。 |
20260819010000_rectification_ingest_precision_plateau.sql |
C | 校正录入的精度判断收紧。 | 不改已填写的出生时间。 | 迁移无报错。 |
20260820010000_rectification_family_appearance_d12.sql |
C | 校正增加家人外貌相关判断,并收紧函数权限。 | 不改已保存的档案。 | 迁移无报错。 |
20260820020000_rectification_d5_d7_precision.sql |
C | 校正增加两类分盘精度,并收紧函数权限。 | 不改已保存的档案。 | 迁移无报错。 |
20260820030000_rectification_d3_family.sql |
C | 校正增加家人分盘,并收紧函数权限。 | 不改已保存的档案。 | 迁移无报错。 |
20260820040000_rectification_occupation_horary.sql |
C | 校正增加职业问事,并收紧函数权限。 | 不改已保存的档案。 | 迁移无报错。 |
20260822010000_declared_birth_window_clocks.sql |
B | 把「只知道大概时段」回填成开始和结束钟点。 | 只填原来空白的时段列,不改已经写上的时间。 | 数 public.profiles 里时段来源且两列仍空的行,迁移后应变少。 |
20260823010000_rectification_occupation_dateless.sql |
B | 没有日期的职业、外貌、胎记证据可以记成已确认。 | 只改这三类证据的确认状态,不改出生时间。 | 数这三类证据在迁移前后的确认行数。 |
20260823020000_rectification_inference_choice_write.sql |
C | 校正选择题的写入权限收紧。 | 不改已有答案。 | 迁移无报错。 |
20260824010000_rectification_inference_transition_ledger.sql |
C | 校正推断过程改成只追加的记录,并收紧权限。 | 旧的推断结果仍在,不删。 | 迁移无报错。 |
20260824020000_rectification_choice_action.sql |
C | 校正点选和停止改成一次写完,并收紧权限。 | 不改已有对话。 | 迁移无报错。 |
20260824030000_rectification_turn_origin.sql |
C | 校正每句话记下是打字、点选、语音还是重试,并收紧权限。 | 不改已有对话正文。 | 迁移无报错。 |
20260825010000_rectification_evidence_kind_date_dedup.sql |
C | 同类又同日的校正证据去重规则收紧。 | 不删除用户原文。 | 迁移无报错。 |
20260826010000_rectification_inference_round_audit.sql |
C | 校正每一轮多记审计字段,并收紧权限。 | 不改已有结论。 | 迁移无报错。 |
20260826020000_rectification_choice_focus_identity.sql |
C | 校正选项卡用服务器保存的编号认身份,并收紧权限。 | 刚发出的卡不会因为编号对不上而被拒绝。 | 迁移无报错。 |
20260826030000_rectification_migration_ledger_health.sql |
C | 网页角色不能再直接读迁移账本,健康检查改走只返回文件名的函数。 | 用户界面不变。 | 迁移无报错。 |
20260827010000_rectification_candidate_profile_freshness.sql |
C | 校正候选和档案是否还新鲜的判断收紧。 | 不改已采用的时间。 | 迁移无报错。 |
20260827020000_rectification_vedastro_validation_retry.sql |
C | 校正外部核对失败后可以重试,并收紧权限。 | 不改已采用的时间。 | 迁移无报错。 |
20260830010000_chat_session_chart_profile_binding.sql |
D | 会话可以绑定到某一位已保存的人。 | 旧会话不改内容。 | 迁移无报错。 |
20260830020000_personal_report_sections.sql |
C | 个人报告按章节保存进度,并收紧权限。 | 已生成的报告正文还在。 | 迁移无报错。 |
20260831010000_feature_pricing.sql |
C | 功能价格表收紧权限。 | 不改用户余额。 | 迁移无报错。 |
20260831020000_feature_pricing_admin_runtime_read_policy.sql |
D | 后台可以只读功能价格。 | 用户侧不变。 | 迁移无报错。 |
20260901010000_append_consultation_question.sql |
C | 咨询提问的写入函数收紧。 | 不改已有对话。 | 迁移无报错。 |
20260901020000_chat_session_pin_archive.sql |
D | 会话增加置顶和归档用的列。 | 这一步还不把归档会话放回列表。 | 迁移无报错。 |
20260902010000_rectification_question_on_turn.sql |
C | 校正把问过的题和选中的项记在当轮上,并收紧权限。 | 刷新后还能看到刚才那道题。 | 迁移无报错。 |
20260902020000_rectification_tool_activity_timing.sql |
C | 校正工具耗时从已有记录推算,并收紧权限。 | 不新增用户能看到的个人资料。 | 迁移无报错。 |
20260903010000_profile_ayanamsa.sql |
D | 本人资料增加岁差设置。 | 不改已有星盘结论。 | 迁移无报错。 |
20260904010000_read_report_candidate_range.sql |
C | 报告只通过一个只读函数看校正窗口,表权限保持收回。 | 找不到时按未找到处理,不编一个窗口。 | 迁移无报错。 |
20260905010000_personal_report_longform_appendices.sql |
C | 长报告附录单独缓存,失败不影响报告本身,并收紧权限。 | 已完成的报告不会因为附录失败被改成失败。 | 迁移无报错。 |
20260906010000_chat_session_context_summary.sql |
D | 会话增加一段上下文摘要列。 | 旧对话正文不变。 | 迁移无报错。 |
20260906020000_adopted_credible_range.sql |
C | 采用校正结果时另存当时的可信窗口,并收紧权限。 | 原来的搜索起点不被改写。 | 迁移无报错。 |
20260906030000_rectification_block_scan_stage.sql |
B | 出生时间完全未知、而且尚未采用的校正,阶段改成先比较时段。 | 已经确认、关闭或已有具体时间的不改。 | 数 public.agentic_rectification_cases 里被改成 block_scan 的行。 |
20260907010000_personal_report_card_summary.sql |
D | 报告列表增加一段纯文字摘要。 | 不改报告正文。 | 迁移无报错。 |
20260907020000_rectification_declared_uncertainty.sql |
C | 校正可以按用户说的不确定范围收窄或放宽,并收紧权限。 | 不改已经采用的时间。 | 迁移无报错。 |
20260909010000_profile_ayanamsa_service_role_grants.sql |
D | 补岁差列给服务角色的读取权。 | 不改用户设置。 | 迁移无报错。 |
20260910010000_rectification_host_fallback_phase.sql |
C | 校正在模型没写出答案时记下宿主兜底,并收紧权限。 | 不改已有答案。 | 迁移无报错。 |
20260915010000_rectification_touch_chat_session.sql |
C | 校正有进展时,会话的更新时间跟着前进,并收紧权限。 | 只打开或改标题不会刷新这个时间。 | 迁移无报错。 |
20260916010000_consultation_session_capacity.sql |
C | 咨询字数上限只数用户看得到的正文,并收紧权限。 | 思考过程仍保存,但不占那一档额度。 | 迁移无报错。 |
20260916020000_rectification_session_title_repair.sql |
B | 校正会话标题里对不上的月日会按创建时间改回;更新时间只向前补。 | 生产停在 08-16 时标题是固定的「生时校正」,预期改 0 行。 | 只看两条 NOTICE 的数字。不是 0 就停下,不记录标题文字。 |
20260920010000_consultation_free_completion.sql |
C | 咨询完成时的免费收尾规则收紧。 | 不改已扣的点数。 | 迁移无报错。 |
20260920010000_rectification_receipt_result_identity.sql |
C | 校正回执改用最后一次完成结果的来源,并收紧权限。 | 不改已展示的结论形状。 | 迁移无报错。 |
20260920020000_adopted_birth_date.sql |
C | 增加采用后的日期和时区列,并收紧权限。 | 原来申报的日期不改。 | 迁移无报错。 |
20260920030000_rectification_dated_windows.sql |
C | 校正窗口可以带公历日期,并收紧权限。 | 已有结果和原始日期不改写。 | 迁移无报错。 |
20260921010000_retire_chat_session_archive.sql |
A | 所有已归档会话的归档标记清空,会话回到列表。 | 用户会重新看到以前归档的会话。列先留着,以后再删。 | 数 public.chat_sessions 里归档标记非空的行,迁移后应为 0。 |
20260925010000_rectification_session_title_result.sql |
B | 自动生成的校正标题改成带结果,并回填已有自动标题。 | 手改过的标题不动。 | 只看 NOTICE 的行数,不记录标题文字。 |
20260925020000_chart_subject_typed_columns.sql |
A | 他人档案改用单独的列;本人在人物表里的镜像行删除。 | 本人资料改由账户资料承载。他人档案还在。 | 数 role 为 self 的人物行,迁移后应为 0。不要打印行内容。 |
20260925030000_chart_subject_trust_and_limit.sql |
B | 他人档案里已采用或已确认的时间退回「已申报」,并清空采用列。 | 每人最多再保存 4 位他人。生产预期受影响行数是 0。 | 本文件之前先数命中行。不是 0 就停下,只报数字。 |
20260925040000_deleted_report_release.sql |
C | 已删除报告的释放规则收紧。 | 不把已删除报告重新公开。 | 迁移无报错。 |
20260926010000_rectification_telemetry.sql |
C | 校正交付时写一行不含身份的汇总,并收紧权限。 | 不保存出生时间或对话原文。 | 迁移无报错。 |
20260927010000_profile_gender.sql |
D | 账户和已保存的人增加可选性别。 | 不填也能继续用。 | 迁移无报错。 |
20260927020000_profile_adopted_birth_service_role_select.sql |
D | 补服务角色读取已采用日期列的权限。 | 不改已有日期。 | 迁移无报错。 |
20260928010000_profile_ayanamsa_six.sql |
D | 岁差选项从四种扩成六种。 | 原来的设置仍然有效。 | 迁移无报错。 |
20260930010000_user_consents.sql |
C | 增加用户协议和隐私政策的同意记录,并收紧权限。 | 只追加,不改写旧同意。 | 迁移无报错。 |
20260930020000_account_deletion_requests.sql |
C | 增加 7 天冷静期的注销申请,并收紧权限。 | 申请当时会退出全部登录。不立刻删资料。 | 迁移无报错。 |
20260930030000_user_feedback.sql |
C | 增加应用内反馈和回复评价的表,并收紧权限。 | 旧对话不改。 | 迁移无报错。 |
20260930040000_moderation_events.sql |
C | 增加审核命中记录,并收紧权限。 | 只记类别和规则编号,不记原文。 | 迁移无报错。 |
20260930050000_reply_quality_snapshots.sql |
C | 点了负向评价时保存那一轮的问题、回答和上下文,并收紧权限。 | 没有点评价的对话不写这份快照。 | 迁移无报错。演练输出不要带正文。 |
20261001010000_rectification_segment_adoption.sql |
C | 校正可以把一段时间里的某一分钟记为采用结果,并收紧权限。 | 这不是新的引擎候选,也不等于最终确认。 | 迁移无报错。 |
20261001020000_rectification_segment_checks.sql |
C | 校正时段结果的检查收紧。 | 不改已采用的时间。 | 迁移无报错。 |
20261002010000_rectification_dated_algorithm_generation.sql |
D | 校正记下算法版本,方便以后区分新旧打分。 | 不改已经交付的结果。 | 迁移无报错。 |