-- Migration : workflow Prévenance PCT (gate confirmation + tracker) -- - patch_planning_import_rows.pct_required : copie au moment de l'import (auto-détecté -- à partir du contenu des colonnes texte référent_technique / mode_operatoire / impacts). -- - patch_planning_import_rows.pct_confirmed_at : timestamp de confirmation par l'opérateur -- avant le démarrage patching. -- - patch_planning_import_rows.pct_confirmed_by_user_id : qui a confirmé. -- - Backfill : pour les rows existantes, init pct_required depuis servers.pct_required. -- Idempotent. ALTER TABLE public.patch_planning_import_rows ADD COLUMN IF NOT EXISTS pct_required boolean NOT NULL DEFAULT false, ADD COLUMN IF NOT EXISTS pct_confirmed_at timestamptz, ADD COLUMN IF NOT EXISTS pct_confirmed_by_user_id integer REFERENCES public.users(id) ON DELETE SET NULL; -- Backfill : récupère pct_required du serveur lié pour les rows déjà importées UPDATE public.patch_planning_import_rows r SET pct_required = COALESCE(s.pct_required, false) FROM public.servers s WHERE r.server_id = s.id AND r.pct_required = false AND COALESCE(s.pct_required, false) = true; CREATE INDEX IF NOT EXISTS idx_pp_rows_pct_pending ON public.patch_planning_import_rows(pct_required) WHERE pct_required = true AND pct_confirmed_at IS NULL;