Files
Jyotisha/docs/operations/production-migrations-20261014.md
T
jesse-uxandGrok (agent loop) 00e6efdbfa 发布可以跟上只多了文档的测试环境头
四个生产工作流改用同一条发布修订:最近一次代码门禁成功的提交可以发布,后面只多文档不再挡住。生产环境拒绝测试验证码。63 个还没上生产的迁移写了分级、演练脚本和首发步骤。没有点任何生产按钮。

自测:发布修订 7 通过,演练安全 3 通过,tsc 0 错,lint 0 error。本机空库演练在服务角色读人物表处按设计停止(退出码 4,其他人物已确认行数为 0)。

Co-Authored-By: Grok (agent loop)
2026-10-14 10:24:40 +08:00

14 KiB
Raw Blame History

生产待上线迁移(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 校正记下算法版本,方便以后区分新旧打分。 不改已经交付的结果。 迁移无报错。