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
Claude
8e4a96ec97
MIGRATION: PostgreSQL + Docker - Solution complète RSS
...
🎯 Objectif: Résoudre définitivement le problème d'affichage RSS
Problème analysé:
- Articles récupérés (logs: "18 nouveaux") mais jamais affichés
- SQLite avec multiples DBs impossibles à déboguer
- Concurrence limitée, pas de logs SQL natifs
- Impossible de savoir quelle DB est vraiment utilisée
Solution: Migration complète vers PostgreSQL + Docker
📦 Fichiers ajoutés/modifiés:
**Docker & Configuration**
- docker-compose.yml: Ajout service PostgreSQL (port 5499)
- Dockerfile: Remplacement sqlite par postgresql-client
- init-db.sql: Script d'initialisation PostgreSQL
- .env.example: Variables d'environnement PostgreSQL
**Code Base de Données**
- config/database-postgres.js: Nouvelle couche PostgreSQL
- Utilise pg (node-postgres) avec pool de connexions
- Conversion SERIAL pour auto-increment
- Conversion TIMESTAMP pour dates
- Gestion transactions avec BEGIN/COMMIT
- Support DATABASE_URL
**Migration**
- scripts/migrate-sqlite-to-postgres.js:
- Migration automatique SQLite → PostgreSQL
- Respect ordre des foreign keys
- Conversion types SQLite → PostgreSQL
- Reset des séquences SERIAL
- Gestion des erreurs et rollback
**Documentation**
- MIGRATION-POSTGRESQL.md: Guide complet
- Pourquoi PostgreSQL vs SQLite
- Étapes de migration détaillées
- Configuration Docker
- Backup/Restore PostgreSQL
- Monitoring et performance
- Dépannage complet
**Dépendances**
- package.json: Ajout pg@^8.11.3
📊 Architecture PostgreSQL:
```yaml
postgres:
port: 5499:5499 (personnalisé)
user: noteflow
database: noteflow
volume: postgres_data (persistant)
healthcheck: pg_isready
app:
depends_on: postgres (avec healthcheck)
DATABASE_URL: auto-configurée
Connexion: via nom de service 'postgres'
```
🔧 Utilisation:
1. **Installer dépendances:**
```bash
npm install
```
2. **Activer PostgreSQL:**
```bash
cp config/database-postgres.js config/database.js
```
3. **Démarrer PostgreSQL:**
```bash
docker-compose up -d postgres
```
4. **Migrer données:**
```bash
SQLITE_PATH=/path/to/notes.db node scripts/migrate-sqlite-to-postgres.js
```
5. **Démarrer app:**
```bash
docker-compose up -d
```
✨ Avantages PostgreSQL:
✅ Concurrence MVCC (pas de verrous globaux)
✅ Une seule DB (pas de confusion)
✅ Logs SQL natifs (debuggable)
✅ Transactions robustes
✅ Production-ready
✅ Monitoring intégré
✅ Performance supérieure
🎯 Résultat attendu:
Le problème RSS sera DÉFINITIVEMENT résolu car:
- Une seule source de vérité (PostgreSQL)
- Logs clairs pour voir les INSERT
- Pas de problème de concurrence
- Frontend et backend sur la même DB
- Debuggable en temps réel
Les articles du 14 novembre (et suivants) seront visibles!
📚 Documentation complète dans MIGRATION-POSTGRESQL.md
2025-11-14 08:23:22 +00:00