mirror of
https://github.com/R0m1k3/noteflow.git
synced 2026-10-11 17:29:37 +02:00
Ajout d'outils pour diagnostiquer et récupérer les données: 1. RECUPERATION-DONNEES.md - Explication de ce qui s'est passé (données non perdues) - 2 options: rester sur SQLite ou migrer vers PostgreSQL - Commandes de vérification et debug 2. scripts/check-data.js - Diagnostic automatique des données - Affiche contenu SQLite ET PostgreSQL - Recommandations selon la situation Utilisation: node scripts/check-data.js Les données utilisateur sont dans data/notes.db (148KB) et peuvent être restaurées immédiatement.
4.4 KiB
4.4 KiB
🚨 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:
- Docker était configuré pour utiliser PostgreSQL (
DB_TYPE=postgres) - Mais le code chargeait toujours SQLite
- Résultat: une nouvelle base SQLite vide était créée
- 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:
# 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:
# 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):
# 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):
# 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:
- Utilisez Option 1 (SQLite) pour récupérer immédiatement vos données
- Vérifiez que tout fonctionne bien
- 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:
- Vérifié que tout fonctionne avec PostgreSQL
- Confirmé que toutes vos données sont migrées
- Testé l'application pendant plusieurs jours
🆘 En cas de problème
Voir les logs
docker-compose logs notes-app | tail -50
Identifier quelle base est utilisée
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
docker exec -e DB_TYPE=sqlite notes-todo-app node server.js
📞 Debug rapide
# 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