-- ================================================================ -- CORRECTIONS POST-MIGRATION -- Corrige les erreurs résiduelles de la migration principale -- ================================================================ -- ================================================================ -- ÉTAPE 1: FINALISER LA TABLE USERS -- ================================================================ -- Colonnes de profil supprimées car elles existent déjà dans la migration de base -- Type user_role supprimé car non défini dans le schéma de base -- ================================================================ -- ÉTAPE 2: FINALISER LA TABLE MESSAGES -- ================================================================ -- Colonnes de messages supprimées car elles existent déjà dans la migration de base -- Type message_status supprimé car non défini dans le schéma de base -- ================================================================ -- ÉTAPE 3: FINALISER LA TABLE MESSAGE_REACTIONS -- ================================================================ -- Colonne emoji supprimée car la table message_reactions utilise reaction_type -- ================================================================ -- ÉTAPE 4: CRÉATION DES INDEX MANQUÉS -- ================================================================ -- Index supprimés car les colonnes référencées n'existent pas dans le schéma de base -- ================================================================ -- ÉTAPE 5: NETTOYAGE DES DÉPENDANCES PROBLÉMATIQUES -- ================================================================ -- Supprimer le trigger problématique avant la fonction DO $$ BEGIN IF EXISTS (SELECT 1 FROM information_schema.triggers WHERE trigger_name = 'trigger_handle_mentions_secure') THEN DROP TRIGGER IF EXISTS trigger_handle_mentions_secure ON messages; RAISE NOTICE 'Trigger trigger_handle_mentions_secure supprimé'; END IF; -- Maintenant supprimer la fonction DROP FUNCTION IF EXISTS handle_mentions_secure() CASCADE; RAISE NOTICE 'Fonction handle_mentions_secure supprimée'; EXCEPTION WHEN OTHERS THEN RAISE NOTICE 'Erreur lors du nettoyage: %', SQLERRM; END $$; -- ================================================================ -- ÉTAPE 6: MISE À JOUR DES DONNÉES EXISTANTES -- ================================================================ -- Migration des données supprimée car les colonnes room n'existent pas dans le schéma de base -- Migration des conversations supprimée car les colonnes et types n'existent pas dans le schéma de base -- ================================================================ -- ÉTAPE 7: VÉRIFICATIONS FINALES -- ================================================================ -- Vérifications finales simplifiées DO $$ DECLARE orphan_messages INTEGER; BEGIN -- Compter les messages sans conversation SELECT COUNT(*) INTO orphan_messages FROM messages WHERE conversation_id IS NULL; RAISE NOTICE 'Vérifications finales:'; RAISE NOTICE '- Messages orphelins: %', orphan_messages; IF orphan_messages > 0 THEN RAISE WARNING 'Il reste % messages sans conversation_id', orphan_messages; END IF; END $$; -- Actualiser les statistiques ANALYZE users; ANALYZE messages; ANALYZE conversations; ANALYZE message_reactions;