Prevent duplicate user entries by handling empty emails

Fixes an issue where creating or editing users with empty email fields would violate a unique constraint in the database. The solution involves updating user routes to treat empty email strings as NULL, adjusting validation schemas, and providing a script to clean existing data.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: a8a78c07-e900-425c-a577-5b4c5894379d
Replit-Commit-Checkpoint-Type: full_checkpoint
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/1957c339-2757-4d1f-8e92-e9f71a1ce58e/a8a78c07-e900-425c-a577-5b4c5894379d/zoO1uWT
This commit is contained in:
michaelschal committed 2025-08-11 20:13:03 +00:00
1 parent c77ea88e9d
commit 6a2e5aad05
5 files changed
+73 -22

No files matched your search

+6 -2
View File
@@ -54,7 +54,11 @@ Si l'interface affiche "Aucun utilisateur trouvé" :
### Problème Création d'Utilisateur
#### Erreur "duplicate key value violates unique constraint users_email_key"
Cette erreur survient quand plusieurs utilisateurs ont un email vide (`""`) car PostgreSQL traite les chaînes vides comme des valeurs uniques.
Cette erreur survient lors de la **création** ou **édition** d'utilisateur quand plusieurs utilisateurs ont un email vide (`""`) car PostgreSQL traite les chaînes vides comme des valeurs uniques.
**Symptômes** :
- Création d'utilisateur échoue avec erreur `Key (email)=() already exists`
- Édition d'utilisateur échoue avec la même erreur lors de la sauvegarde
**Solution** :
1. Exécutez le script de correction :
@@ -62,7 +66,7 @@ Cette erreur survient quand plusieurs utilisateurs ont un email vide (`""`) car
psql $DATABASE_URL -f fix-duplicate-empty-email.sql
```
2. Redéployez l'application (le code a été corrigé pour utiliser `NULL` au lieu de `""`)
2. Redéployez l'application (le code a été corrigé pour utiliser `NULL` au lieu de `""` dans les routes de création ET d'édition)
#### Tests de Création
1. **Test Manuel** : Utilisez `test-create-user-production.js`