Files
mes-budgets-participatifs/DEBUG.md
Yannick Le Duc e0f86a8845 initial commit
2025-08-25 14:38:13 +02:00

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

  1. Ouvrez les outils de développement (F12)
  2. Allez dans l'onglet "Console"
  3. Essayez de supprimer une campagne
  4. 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

  1. Allez dans Table Editor dans Supabase
  2. Sélectionnez la table campaigns
  3. Essayez de supprimer une ligne manuellement
  4. 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 :

  1. Les logs dans la console du navigateur
  2. Les logs dans Supabase (Dashboard > Logs)
  3. Les politiques RLS dans Supabase
  4. La configuration des variables d'environnement