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

101 lines
3.4 KiB
Markdown

# 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 :
```env
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 :
```sql
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` :
```sql
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
```sql
-- 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
```javascript
// 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