Files
Omika/scripts/dev/clear_diagnostics_local_seed.sql
2026-10-23 18:46:50 +02:00

43 lines
2.0 KiB
SQL

-- =====================================================================
-- Omika Diagnostic Center — NETTOYAGE DU SEED LOCAL (FAKE DATA)
-- clear_diagnostics_local_seed.sql
-- =====================================================================
-- ⚠️ RÉSERVÉ AU DÉVELOPPEMENT LOCAL. Supprime UNIQUEMENT les données
-- synthétiques marquées source='local-seed'. Aucun TRUNCATE, aucune
-- suppression générale, jamais les vraies données.
-- ⚠️ À lancer manuellement (aucune exécution automatique).
-- =====================================================================
-- Garde-fou : refuse de s'exécuter hors de la base locale omika_diagnostics.
DO $$
BEGIN
IF current_database() <> 'omika_diagnostics' THEN
RAISE EXCEPTION 'REFUS : nettoyage LOCAL uniquement sur la base omika_diagnostics (base détectée : %).', current_database();
END IF;
END
$$;
-- Suppression ciblée et sûre.
DELETE FROM diagnostic_event
WHERE source = 'local-seed';
-- =====================================================================
-- VÉRIFICATION (T13-G §28) — procédure de contrôle à exécuter séparément.
-- Objectif : démontrer que le nettoyage supprime UNIQUEMENT le seed local
-- et préserve toute ligne réelle (source <> 'local-seed').
--
-- AVANT nettoyage (état attendu : 1 vraie ligne + N lignes local-seed) :
-- SELECT count(*) FILTER (WHERE source = 'local-seed') AS seed_rows,
-- count(*) FILTER (WHERE source <> 'local-seed') AS real_rows
-- FROM diagnostic_event;
--
-- APRÈS exécution de ce script, vérifier :
-- SELECT count(*) FROM diagnostic_event WHERE source = 'local-seed';
-- -- attendu : 0
-- SELECT count(*) FROM diagnostic_event WHERE source <> 'local-seed';
-- -- attendu : inchangé (la vraie ligne est conservée)
--
-- GARANTIE STRUCTURELLE : l'unique instruction de suppression est bornée par
-- le marqueur source = 'local-seed'. Aucun TRUNCATE, aucun DELETE sans filtre.
-- =====================================================================