FR-121 子卡 .2。範圍:
complianceschema 全部無時區欄位(DEV 實查 20 表 51 欄)。表分屬 jedi-flow-engine/jedi-task-platform/jedi-compliance-audit 與主線 flow_control;已知 UTC 寫入:flow-engineworkflow_executions/job_executions/element_variables。
SELECT table_name,column_name FROM information_schema.columns WHERE data_type='timestamp without time zone' AND table_schema='<本卡 schema>' ORDER BY 1,2;,逐欄判斷寫入端是本地(Asia/Taipei)還是 UTC(grep ORM default/server_default/寫入程式;已知 UTC 寫入:flow-engine 三張、iam 改密碼兩張),列表進回寫。判不了的先回寫問首腦,不猜。ALTER TABLE <t> ALTER COLUMN <c> TYPE timestamptz USING <c> AT TIME ZONE 'Asia/Taipei'(UTC 寫入的欄用 'UTC')。表屬套件放該套件 migrations/(先看既有放法),主線表放 scripts/sql/;照 sql-migration 規範(檔頭 Date、每句註解、schema_migrations、GRANT 不變)。只套 DEV。DateTime(timezone=True);寫入 default 改 datetime.now(timezone.utc) 或 func.now()。git grep 這些欄位名:view、SQL 字串、::date、date_trunc、>= now() 比較——確認型別改後語意不變(view 與 SQL 字串是守衛盲區)。SET TIME ZONE 'UTC' 或改容器 TZ)再讀一次仍正確;受影響套件測試帶 PYTHONPATH 全綠;BE 三支守衛。PYTHONPATH=/Users/chouraymond/Projects/Jedicogy/module/jedi-python-package/.claude/worktrees/jedi-wt-fix-security/jedi-integrity:/Users/chouraymond/Projects/Jedicogy/module/jedi-python-package/.claude/worktrees/jedi-wt-fix-security/jedi-compliance-audit。.env(localhost:5432)。190 只讀。結果:compliance schema 20 表 51 欄全部改成 timestamptz,DEV 盤點歸零。舊資料時間不變,連線時區改 UTC 讀出來仍是同一個時間點。
commit