veza/veza-chat-server/migrations/1001_post_migration_fixes.sql
2025-12-03 20:33:26 +01:00

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;