1.0.581.sql 1.3 KB

12345678910111213141516171819
  1. -- 1.0.581 —— 回填 cancel_requested_flag 的历史 NULL,并把列收口为 NOT NULL。
  2. -- 背景:该列最早由 CodeFirst 建成可空且无默认值;1.0.580 的 @col_exists 判定为「已存在」,
  3. -- 于是跳过了它本想建的 NOT NULL DEFAULT 0,列至今仍可空并残留历史 NULL 行。
  4. -- 实体 AdoModuleDashboardRebuildJob.CancelRequestedFlag 是非空 bool,因此每次启动
  5. -- CodeFirst 都会执行 `alter ... change column cancel_requested_flag ... NOT NULL`,
  6. -- 撞上 NULL 行抛 "Invalid use of NULL value";又因 Database.json 里
  7. -- TableSettings:ContinueInitTableOnEntityFailure=true,异常被降级成 warning 跳过,
  8. -- 这张表的结构每次启动都是不完整的(见 doc/plan/天缘对接/20260926问题描述.md §七)。
  9. -- 历史行语义上等同「未请求取消」,回填 0 不改变任何业务判断。
  10. --
  11. -- 幂等:UPDATE 命中 0 行即无副作用;MODIFY 到目标定义可重复执行。
  12. UPDATE ado_module_dashboard_rebuild_job
  13. SET cancel_requested_flag = 0
  14. WHERE cancel_requested_flag IS NULL;
  15. ALTER TABLE ado_module_dashboard_rebuild_job
  16. MODIFY COLUMN cancel_requested_flag TINYINT(1) NOT NULL DEFAULT 0
  17. COMMENT '管理员请求协作式取消,阶段边界生效';