fix(db): Phase 6 migration 三條 CREATE INDEX 拆開各自 execute
Some checks failed
CD Pipeline / build-and-deploy (push) Has been cancelled

asyncpg 不支援 prepared statement 內多條 SQL 指令,
原本一個 text("""...""") 包含三條 CREATE INDEX 導致 CrashLoopBackOff。
拆成三個獨立 conn.execute() 呼叫。

2026-04-15 ogt + Claude Sonnet 4.6(亞太)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
OG T
2026-04-15 19:37:58 +08:00
parent 160689a110
commit f9ba200638

View File

@@ -222,17 +222,19 @@ async def init_db() -> None:
# 2026-04-15 ogt + Claude Sonnet 4.6(亞太): Phase 6 自我治理閉環
# ADR-087: ai_governance_events 不可變 Event Sourcing 表
# create_all 已建表,此處補 INDEX部分環境 create 不跑 Index
await conn.execute(
text("""
CREATE INDEX IF NOT EXISTS ix_ai_governance_event_type
ON ai_governance_events (event_type);
CREATE INDEX IF NOT EXISTS ix_ai_governance_triggered_at
ON ai_governance_events (triggered_at);
CREATE INDEX IF NOT EXISTS ix_ai_governance_resolved
ON ai_governance_events (resolved);
""")
)
# asyncpg 不允許 prepared statement 內多條指令,必須分開 execute
await conn.execute(text(
"CREATE INDEX IF NOT EXISTS ix_ai_governance_event_type "
"ON ai_governance_events (event_type);"
))
await conn.execute(text(
"CREATE INDEX IF NOT EXISTS ix_ai_governance_triggered_at "
"ON ai_governance_events (triggered_at);"
))
await conn.execute(text(
"CREATE INDEX IF NOT EXISTS ix_ai_governance_resolved "
"ON ai_governance_events (resolved);"
))
async def close_db() -> None: