# 🚹 RÉCUPÉRATION DES DONNÉES - Guide d'urgence ## 📋 Qu'est-ce qui s'est passĂ© ? Vos donnĂ©es ne sont **PAS perdues** ! Le problĂšme Ă©tait que: 1. Docker Ă©tait configurĂ© pour utiliser PostgreSQL (`DB_TYPE=postgres`) 2. Mais le code chargeait toujours SQLite 3. RĂ©sultat: une nouvelle base SQLite vide Ă©tait créée 4. Vos vraies donnĂ©es sont restĂ©es dans la base SQLite d'origine ## ✅ Solution appliquĂ©e Un systĂšme de **dĂ©tection automatique** a Ă©tĂ© ajoutĂ© (`config/database-loader.js`) qui: - DĂ©tecte `DB_TYPE=postgres` → charge PostgreSQL - DĂ©tecte `DATABASE_URL=postgresql://` → charge PostgreSQL - Sinon → charge SQLite ## 🔄 Deux options pour rĂ©cupĂ©rer vos donnĂ©es ### Option 1: Utiliser SQLite (RAPIDE - recommandĂ© pour l'instant) **Revenir temporairement Ă  SQLite le temps de tout vĂ©rifier:** ```bash # 1. ArrĂȘter les containers docker-compose down # 2. Modifier docker-compose.yml temporairement # Commentez ces lignes dans la section notes-app > environment: # - DATABASE_URL=postgresql://... # - DB_TYPE=postgres # 3. Relancer docker-compose build notes-app docker-compose up -d ``` Vos donnĂ©es rĂ©apparaĂźtront immĂ©diatement car SQLite sera rechargĂ©. ### Option 2: Migrer vers PostgreSQL (PROPRE - recommandĂ© pour production) **Migration complĂšte de SQLite → PostgreSQL:** ```bash # 1. Reconstruire avec le nouveau code docker-compose build notes-app # 2. DĂ©marrer les containers docker-compose up -d # 3. Attendre 30 secondes que PostgreSQL dĂ©marre sleep 30 # 4. Lancer la migration bash scripts/run-migration.sh ``` Cette option copie toutes vos donnĂ©es de SQLite vers PostgreSQL. ## 🔍 VĂ©rifier que tout fonctionne ### AprĂšs Option 1 (SQLite): ```bash # VĂ©rifier les donnĂ©es docker exec notes-todo-app node -e " const { getAll } = require('./config/database-loader'); getAll('SELECT COUNT(*) as count FROM notes').then(r => { console.log('Notes:', r[0].count); process.exit(0); }); " ``` ### AprĂšs Option 2 (PostgreSQL): ```bash # VĂ©rifier les donnĂ©es dans PostgreSQL docker exec noteflow-postgres psql -U noteflow -d noteflow -p 5499 \ -c "SELECT COUNT(*) FROM notes;" docker exec noteflow-postgres psql -U noteflow -d noteflow -p 5499 \ -c "SELECT COUNT(*) FROM rss_articles;" ``` ## 🎯 Recommandation **Pour l'instant:** 1. Utilisez **Option 1** (SQLite) pour rĂ©cupĂ©rer immĂ©diatement vos donnĂ©es 2. VĂ©rifiez que tout fonctionne bien 3. Plus tard, quand vous ĂȘtes prĂȘt, utilisez **Option 2** pour migrer vers PostgreSQL ## 📂 OĂč sont vos donnĂ©es ? - **SQLite actuel:** `./data/notes.db` (vos vraies donnĂ©es sont ici) - **PostgreSQL:** Container Docker `noteflow-postgres` (vide ou partiellement migrĂ©) ## ⚠ Important **NE SUPPRIMEZ PAS** le fichier `./data/notes.db` tant que vous n'avez pas: 1. VĂ©rifiĂ© que tout fonctionne avec PostgreSQL 2. ConfirmĂ© que toutes vos donnĂ©es sont migrĂ©es 3. TestĂ© l'application pendant plusieurs jours ## 🆘 En cas de problĂšme ### Voir les logs ```bash docker-compose logs notes-app | tail -50 ``` ### Identifier quelle base est utilisĂ©e ```bash docker exec notes-todo-app node -e " console.log('DB_TYPE:', process.env.DB_TYPE); console.log('DATABASE_URL:', process.env.DATABASE_URL?.replace(/:[^:@]+@/, ':***@')); " ``` ### Forcer SQLite mĂȘme avec Docker ```bash docker exec -e DB_TYPE=sqlite notes-todo-app node server.js ``` ## 📞 Debug rapide ```bash # Compter les notes dans SQLite docker exec notes-todo-app node -e " const sqlite3 = require('sqlite3'); const db = new sqlite3.Database('./data/notes.db'); db.get('SELECT COUNT(*) as count FROM notes', (err, row) => { console.log('Notes SQLite:', row.count); db.close(); }); " 2>/dev/null # Compter les notes dans PostgreSQL docker exec noteflow-postgres psql -U noteflow -d noteflow -p 5499 -t \ -c "SELECT COUNT(*) FROM notes;" 2>/dev/null || echo "PostgreSQL non accessible" ``` ## ✅ Checklist de rĂ©cupĂ©ration - [ ] Containers redĂ©marrĂ©s avec nouvelle configuration - [ ] Base de donnĂ©es accessible (SQLite OU PostgreSQL) - [ ] Notes visibles dans l'interface - [ ] TĂąches visibles - [ ] Flux RSS configurĂ©s - [ ] ÉvĂ©nements calendrier prĂ©sents - [ ] ParamĂštres restaurĂ©s --- **Date de crĂ©ation:** 2025-11-14 **Commit de correction:** 55a1809 - Fix: Chargement automatique SQLite/PostgreSQL