87 lines
No EOL
3.3 KiB
SQL
87 lines
No EOL
3.3 KiB
SQL
-- ================================================================
|
|
-- 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; |