MIGRATION VERS GITEA

This commit is contained in:
mathis committed 2026-08-25 01:23:13 +02:00
commit 5f9d991c15
333 files changed
+108514

No files matched your search

+109
View File
@@ -0,0 +1,109 @@
-- ============================================================================
-- MIGRATION: Ajout du système de gestion des perturbations
-- Date: 2026-02-06
-- Description: Ajoute les tables nécessaires pour gérer les perturbations
-- affectant les horaires de trains
-- ============================================================================
-- Vérifier que les tables n'existent pas déjà
DO $$
BEGIN
IF EXISTS (SELECT 1 FROM information_schema.tables WHERE table_name = 'perturbations') THEN
RAISE NOTICE 'La table perturbations existe déjà, migration annulée';
RETURN;
END IF;
END $$;
-- Exécuter le script principal
supabase_perturbations_tables.sql
-- Vérification post-migration
DO $$
DECLARE
perturbations_count INTEGER;
modifications_count INTEGER;
BEGIN
-- Vérifier que les tables ont été créées
SELECT COUNT(*) INTO perturbations_count
FROM information_schema.tables
WHERE table_name = 'perturbations';
SELECT COUNT(*) INTO modifications_count
FROM information_schema.tables
WHERE table_name = 'perturbations_modifications_parcours';
IF perturbations_count = 1 AND modifications_count = 1 THEN
RAISE NOTICE '✓ Migration réussie : Tables créées avec succès';
ELSE
RAISE EXCEPTION '✗ Échec de la migration : Les tables n''ont pas été créées correctement';
END IF;
-- Afficher les colonnes créées
RAISE NOTICE 'Colonnes de la table perturbations:';
FOR rec IN (
SELECT column_name, data_type
FROM information_schema.columns
WHERE table_name = 'perturbations'
ORDER BY ordinal_position
) LOOP
RAISE NOTICE ' - % (%)', rec.column_name, rec.data_type;
END LOOP;
END $$;
-- Test d'insertion (rollback automatique)
DO $$
DECLARE
test_horaire_id UUID;
test_perturbation_id UUID;
BEGIN
-- Récupérer un horaire existant pour le test
SELECT id INTO test_horaire_id FROM horaires LIMIT 1;
IF test_horaire_id IS NULL THEN
RAISE NOTICE 'Aucun horaire disponible pour le test';
RETURN;
END IF;
-- Test d'insertion d'une perturbation
INSERT INTO perturbations (
horaire_id,
type_perturbation,
duree_retard_minutes,
cause,
cause_details,
actif
) VALUES (
test_horaire_id,
'retard',
15,
'incident_technique',
'Test de migration',
false
) RETURNING id INTO test_perturbation_id;
IF test_perturbation_id IS NOT NULL THEN
RAISE NOTICE '✓ Test d''insertion réussi';
-- Supprimer le test
DELETE FROM perturbations WHERE id = test_perturbation_id;
ELSE
RAISE EXCEPTION '✗ Échec du test d''insertion';
END IF;
EXCEPTION
WHEN OTHERS THEN
RAISE NOTICE '✗ Erreur lors du test : %', SQLERRM;
END $$;
-- Afficher un résumé
SELECT
'Migration terminée' as statut,
NOW() as date_migration,
(SELECT COUNT(*) FROM perturbations) as nombre_perturbations,
(SELECT COUNT(*) FROM perturbations_modifications_parcours) as nombre_modifications;
-- ============================================================================
-- ROLLBACK (à utiliser en cas de problème)
-- ============================================================================
-- DROP TABLE IF EXISTS perturbations_modifications_parcours CASCADE;
-- DROP TABLE IF EXISTS perturbations CASCADE;