3.4 KiB
3.4 KiB
Guide de Débogage - Problème de Suppression
🔍 Étapes de débogage
1. Vérifier les variables d'environnement
Assurez-vous que votre fichier .env.local contient les bonnes valeurs :
NEXT_PUBLIC_SUPABASE_URL=https://your-project.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=your-anon-key-here
2. Vérifier la console du navigateur
- Ouvrez les outils de développement (F12)
- Allez dans l'onglet "Console"
- Essayez de supprimer une campagne
- Regardez les logs qui s'affichent
Vous devriez voir :
- "Début de la suppression de la campagne: [ID]"
- "Tentative de suppression de la campagne: [ID]"
- "Campagne supprimée avec succès"
- "handleCampaignDeleted appelé"
- "Rechargement des campagnes..."
3. Vérifier les politiques RLS dans Supabase
Dans votre projet Supabase, allez dans Authentication > Policies et vérifiez que vous avez bien :
CREATE POLICY "Allow public delete access to campaigns" ON campaigns FOR DELETE USING (true);
4. Tester la suppression directement dans Supabase
- Allez dans Table Editor dans Supabase
- Sélectionnez la table
campaigns - Essayez de supprimer une ligne manuellement
- Vérifiez s'il y a des erreurs
5. Vérifier les contraintes de clés étrangères
Assurez-vous que les tables ont bien les contraintes ON DELETE CASCADE :
campaign_id UUID NOT NULL REFERENCES campaigns(id) ON DELETE CASCADE
🚨 Problèmes courants
Problème 1 : Variables d'environnement manquantes
Symptôme : Erreur "supabaseUrl is required"
Solution : Vérifiez votre fichier .env.local
Problème 2 : Politiques RLS manquantes
Symptôme : Erreur "new row violates row-level security policy" Solution : Ajoutez la politique de suppression dans Supabase
Problème 3 : Contraintes de clés étrangères
Symptôme : Erreur de contrainte lors de la suppression Solution : Vérifiez que les contraintes CASCADE sont bien définies
Problème 4 : Connexion Supabase
Symptôme : Erreur de connexion Solution : Vérifiez l'URL et la clé anon de Supabase
🔧 Solutions rapides
Réinitialiser les politiques RLS
-- Supprimer toutes les politiques existantes
DROP POLICY IF EXISTS "Allow public read access to campaigns" ON campaigns;
DROP POLICY IF EXISTS "Allow public insert access to campaigns" ON campaigns;
DROP POLICY IF EXISTS "Allow public update access to campaigns" ON campaigns;
DROP POLICY IF EXISTS "Allow public delete access to campaigns" ON campaigns;
-- Recréer les politiques
CREATE POLICY "Allow public read access to campaigns" ON campaigns FOR SELECT USING (true);
CREATE POLICY "Allow public insert access to campaigns" ON campaigns FOR INSERT WITH CHECK (true);
CREATE POLICY "Allow public update access to campaigns" ON campaigns FOR UPDATE USING (true);
CREATE POLICY "Allow public delete access to campaigns" ON campaigns FOR DELETE USING (true);
Vérifier la configuration Supabase
// Dans la console du navigateur, testez :
import { createClient } from '@supabase/supabase-js';
const supabase = createClient(process.env.NEXT_PUBLIC_SUPABASE_URL, process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY);
console.log('Supabase URL:', process.env.NEXT_PUBLIC_SUPABASE_URL);
📞 Support
Si le problème persiste, vérifiez :
- Les logs dans la console du navigateur
- Les logs dans Supabase (Dashboard > Logs)
- Les politiques RLS dans Supabase
- La configuration des variables d'environnement