fix(playbook): seed tuple unpack + text[] → jsonb migration
Some checks failed
CD Pipeline / build-and-deploy (push) Has been cancelled
Some checks failed
CD Pipeline / build-and-deploy (push) Has been cancelled
- playbook_seed_service.py: list_playbooks 回傳 tuple[list, int], 缺少解包導致 'list' has no attribute 'source' - fix_playbooks_array_to_jsonb.sql: source_incident_ids/tags text[] → jsonb (已手動套用 prod DB) 2026-04-15 ogt + Claude Sonnet 4.6(亞太) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
11
apps/api/migrations/fix_playbooks_array_to_jsonb.sql
Normal file
11
apps/api/migrations/fix_playbooks_array_to_jsonb.sql
Normal file
@@ -0,0 +1,11 @@
|
||||
-- 修正 playbooks 表 text[] 欄位 → jsonb
|
||||
-- 原因: ORM 送 JSON type,DB 欄位為 text[],導致 DatatypeMismatchError
|
||||
-- 2026-04-15 ogt + Claude Sonnet 4.6(亞太): 已手動套用到 prod
|
||||
|
||||
ALTER TABLE playbooks ALTER COLUMN source_incident_ids DROP DEFAULT;
|
||||
ALTER TABLE playbooks ALTER COLUMN source_incident_ids TYPE jsonb USING to_jsonb(source_incident_ids);
|
||||
ALTER TABLE playbooks ALTER COLUMN source_incident_ids SET DEFAULT '[]'::jsonb;
|
||||
|
||||
ALTER TABLE playbooks ALTER COLUMN tags DROP DEFAULT;
|
||||
ALTER TABLE playbooks ALTER COLUMN tags TYPE jsonb USING to_jsonb(tags);
|
||||
ALTER TABLE playbooks ALTER COLUMN tags SET DEFAULT '[]'::jsonb;
|
||||
@@ -43,7 +43,7 @@ async def seed_playbooks_from_rules() -> None:
|
||||
repo = get_playbook_repository()
|
||||
|
||||
# 取得現有 playbook source_ids,避免重複建立
|
||||
existing = await repo.list_playbooks(status=PlaybookStatus.APPROVED, limit=500)
|
||||
existing, _ = await repo.list_playbooks(status=PlaybookStatus.APPROVED, limit=500)
|
||||
existing_sources = {p.source for p in existing if p.source}
|
||||
|
||||
seeded = 0
|
||||
|
||||
Reference in New Issue
Block a user