101 lines
3.4 KiB
Markdown
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
|