Files
noteflow/scripts/README-FIXES.md
T
Claude a8ebca6481 feat: add scripts to fix PostgreSQL boolean data type issues
Added tools to resolve the 500 error when notes don't display due to
boolean type mismatches between SQLite (0/1) and PostgreSQL (TRUE/FALSE).

New files:
- scripts/fix-boolean-data.js: Converts INTEGER columns to BOOLEAN type
  and migrates existing 0/1 data to FALSE/TRUE
- scripts/README-FIXES.md: Instructions for running the fix script

Improved:
- scripts/migrate-sqlite-to-postgres.js: Now automatically converts 0/1
  to FALSE/TRUE for known boolean columns during migration

This resolves issues where:
- Migrated data contains INTEGER values (0/1) instead of BOOLEAN
- SQL queries using "completed = TRUE" fail to match rows
- API endpoints return 500 errors

To fix an existing database, run: node scripts/fix-boolean-data.js
2025-11-28 16:26:26 +00:00

61 lines
1.8 KiB
Markdown

# Scripts de correction PostgreSQL
## Problème: Notes ne s'affichent pas (Erreur 500)
Si vous voyez une erreur 500 sur `/api/notes` après la migration vers PostgreSQL, c'est probablement dû à un problème de conversion des données booléennes.
### Cause
Lors de la migration de SQLite vers PostgreSQL:
- SQLite stocke les booléens comme INTEGER (0/1)
- PostgreSQL utilise le type BOOLEAN (TRUE/FALSE)
- Si les données ont été migrées sans conversion, les valeurs restent en INTEGER
- Les requêtes SQL qui utilisent `completed = TRUE` échouent
### Solution
Exécutez le script de correction sur votre base de données de production:
```bash
# Sur le serveur de production
cd /path/to/noteflow
node scripts/fix-boolean-data.js
```
Ce script va:
1. Se connecter à votre base PostgreSQL
2. Vérifier les types des colonnes booléennes
3. Convertir les colonnes INTEGER en BOOLEAN si nécessaire
4. Convertir automatiquement les valeurs 0/1 en FALSE/TRUE
### Colonnes concernées
- `users.is_admin`
- `notes.archived`
- `note_todos.completed`, `note_todos.priority`
- `global_todos.completed`, `global_todos.priority`
- `rss_feeds.enabled`
- `calendar_events.all_day`
### Variables d'environnement
Le script utilise `DATABASE_URL` de votre fichier `.env`:
```env
DATABASE_URL=postgresql://noteflow:password@localhost:5499/noteflow
```
### Migration future
Le script `migrate-sqlite-to-postgres.js` a été amélioré pour convertir automatiquement les booléens lors des futures migrations. Vous n'aurez plus besoin d'exécuter `fix-boolean-data.js` après de nouvelles migrations.
### Vérification
Après l'exécution du script, redémarrez votre serveur et vérifiez que les notes s'affichent correctement.
```bash
pm2 restart noteflow
# ou
systemctl restart noteflow
```