Dieu43 v1.2 rev 3 Phase 1.6 migration 05-dieu43-v1-2-rev3-alter-check.sql
-- =============================================================================
-- File 05: Đ43 v1.2 rev 3 — ALTER 3 CHECK constraint / → __
-- Target DB: directus
-- Run as: directus (owns tables)
-- Idempotent: YES (DROP CONSTRAINT IF EXISTS + ADD CONSTRAINT with fixed name)
-- Spec: Đ43 v1.2 rev 3 §5.7 + §5.8 (separator amend / → __ khớp PG reality)
-- =============================================================================
-- DOT-MIGRATION-APPLY-OK
-- Author: Claude CLI, S178 Fix 12 Phase 1.6
-- Date: 2026-04-17
-- =============================================================================
BEGIN;
-- §5.7 — chk_query_kb_path_whitelist ALTER TABLE context_pack_section_definitions DROP CONSTRAINT IF EXISTS chk_query_kb_path_whitelist; ALTER TABLE context_pack_section_definitions ADD CONSTRAINT chk_query_kb_path_whitelist CHECK ( query_kb_path IS NULL OR query_kb_path LIKE 'knowledge__current-state__queries__%' );
-- §5.7 — chk_template_kb_path_whitelist ALTER TABLE context_pack_section_definitions DROP CONSTRAINT IF EXISTS chk_template_kb_path_whitelist; ALTER TABLE context_pack_section_definitions ADD CONSTRAINT chk_template_kb_path_whitelist CHECK ( template_kb_path IS NULL OR template_kb_path LIKE 'knowledge__current-state__templates__%' );
-- §5.8 — chk_sql_executor_path ALTER TABLE context_pack_health_checks DROP CONSTRAINT IF EXISTS chk_sql_executor_path; ALTER TABLE context_pack_health_checks ADD CONSTRAINT chk_sql_executor_path CHECK ( executor_type != 'sql' OR executor_ref LIKE 'knowledge__current-state__queries__%' );
COMMIT;
-- Post-check: verify 3 constraints use __ pattern SELECT conname || ' | ' || pg_get_constraintdef(oid) FROM pg_constraint WHERE conname IN ('chk_query_kb_path_whitelist','chk_template_kb_path_whitelist','chk_sql_executor_path') ORDER BY conname;