Files
noteflow/scripts/README-FIXES.md
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

1.8 KiB

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:

# 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:

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.

pm2 restart noteflow
# ou
systemctl restart noteflow