mirror of
https://github.com/R0m1k3/noteflow.git
synced 2026-10-17 12:18:53 +02:00
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
This commit is contained in:
3 files changed
+172
-1
No files matched your search
@@ -0,0 +1,60 @@
|
||||
# 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
|
||||
```
|
||||
Reference in new issue
Block a user