43 lines
2.0 KiB
SQL
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.
|
|
-- =====================================================================
|