From a2e01a9537f80ceb76be24c4de138d5f55de196c Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 14 Nov 2025 09:52:23 +0000 Subject: [PATCH 1/2] Scripts: Restauration SQLite et migration PostgreSQL MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ajout de 2 scripts interactifs pour gérer les données: 1. scripts/restore-sqlite.sh - Restauration rapide de SQLite (1 commande) - Désactive PostgreSQL automatiquement - Redémarre avec les données originales 2. scripts/switch-to-postgres.sh - Migration complète vers PostgreSQL - Backup automatique de SQLite - Migration et vérification des données - Rollback possible si erreur Usage: bash scripts/restore-sqlite.sh # Récupération rapide bash scripts/switch-to-postgres.sh # Migration complète Les deux scripts sont interactifs avec confirmation. --- scripts/restore-sqlite.sh | 57 +++++++++++++++++++++++ scripts/switch-to-postgres.sh | 87 +++++++++++++++++++++++++++++++++++ 2 files changed, 144 insertions(+) create mode 100755 scripts/restore-sqlite.sh create mode 100755 scripts/switch-to-postgres.sh diff --git a/scripts/restore-sqlite.sh b/scripts/restore-sqlite.sh new file mode 100755 index 0000000..8cdb5ac --- /dev/null +++ b/scripts/restore-sqlite.sh @@ -0,0 +1,57 @@ +#!/bin/bash + +echo "" +echo "🔄 RESTAURATION SQLITE - Récupération rapide des données" +echo "═══════════════════════════════════════════════════════" +echo "" +echo "Cette opération va:" +echo " 1. Arrêter PostgreSQL" +echo " 2. Reconfigurer l'application pour SQLite" +echo " 3. Redémarrer avec vos données originales" +echo "" +read -p "Continuer? (o/N) " -n 1 -r +echo +if [[ ! $REPLY =~ ^[Oo]$ ]]; then + echo "❌ Annulé" + exit 1 +fi + +echo "" +echo "📋 Étape 1/3: Arrêt des containers..." +docker-compose down + +echo "" +echo "📋 Étape 2/3: Modification docker-compose.yml..." + +# Commenter les lignes PostgreSQL dans docker-compose.yml +sed -i 's|^ - DATABASE_URL=|# - DATABASE_URL=|g' docker-compose.yml +sed -i 's|^ - DB_TYPE=postgres|# - DB_TYPE=postgres|g' docker-compose.yml + +echo " ✅ Configuration SQLite activée" + +echo "" +echo "📋 Étape 3/3: Redémarrage avec SQLite..." +docker-compose build notes-app +docker-compose up -d + +echo "" +echo "⏳ Attente du démarrage (10 secondes)..." +sleep 10 + +echo "" +echo "═══════════════════════════════════════════════════════" +echo "✅ RESTAURATION TERMINÉE!" +echo "" +echo "Vos données SQLite sont maintenant actives." +echo "" +echo "🔍 Vérification:" +docker-compose logs notes-app | grep -i "database\|sqlite" | tail -3 +echo "" +echo "🌐 Accédez à votre application:" +echo " http://localhost:2222" +echo "" +echo "📊 Pour vérifier les données:" +echo " node scripts/check-data.js" +echo "" +echo "═══════════════════════════════════════════════════════" +echo "" diff --git a/scripts/switch-to-postgres.sh b/scripts/switch-to-postgres.sh new file mode 100755 index 0000000..44ab80d --- /dev/null +++ b/scripts/switch-to-postgres.sh @@ -0,0 +1,87 @@ +#!/bin/bash + +echo "" +echo "🐘 MIGRATION VERS POSTGRESQL" +echo "═══════════════════════════════════════════════════════" +echo "" +echo "Cette opération va:" +echo " 1. Activer PostgreSQL" +echo " 2. Migrer toutes vos données SQLite → PostgreSQL" +echo " 3. Reconfigurer l'application" +echo "" +echo "⚠️ IMPORTANT:" +echo " - La base SQLite sera conservée (backup automatique)" +echo " - La migration prend environ 1-2 minutes" +echo " - Vos données ne seront PAS supprimées" +echo "" +read -p "Continuer? (o/N) " -n 1 -r +echo +if [[ ! $REPLY =~ ^[Oo]$ ]]; then + echo "❌ Annulé" + exit 1 +fi + +echo "" +echo "📋 Étape 1/5: Sauvegarde de la base SQLite..." +cp data/notes.db data/notes.db.backup-$(date +%Y%m%d-%H%M%S) +echo " ✅ Backup créé: data/notes.db.backup-*" + +echo "" +echo "📋 Étape 2/5: Activation de PostgreSQL..." + +# Décommenter les lignes PostgreSQL +sed -i 's|^# - DATABASE_URL=| - DATABASE_URL=|g' docker-compose.yml +sed -i 's|^# - DB_TYPE=postgres| - DB_TYPE=postgres|g' docker-compose.yml + +echo " ✅ Configuration PostgreSQL activée" + +echo "" +echo "📋 Étape 3/5: Redémarrage des containers..." +docker-compose down +docker-compose build notes-app +docker-compose up -d + +echo "" +echo "📋 Étape 4/5: Attente démarrage PostgreSQL..." +for i in {1..30}; do + if docker exec noteflow-postgres pg_isready -U noteflow -d noteflow -p 5499 >/dev/null 2>&1; then + echo " ✅ PostgreSQL prêt" + break + fi + echo -n "." + sleep 1 +done +echo "" + +echo "" +echo "📋 Étape 5/5: Migration des données..." +docker exec -e SQLITE_PATH=/app/data-sqlite/notes.db notes-todo-app node scripts/migrate-sqlite-to-postgres.js + +if [ $? -eq 0 ]; then + echo "" + echo "═══════════════════════════════════════════════════════" + echo "✅ MIGRATION RÉUSSIE!" + echo "" + echo "PostgreSQL est maintenant actif avec toutes vos données." + echo "" + echo "🔍 Vérification:" + node scripts/check-data.js + echo "" + echo "🌐 Accédez à votre application:" + echo " http://localhost:2222" + echo "" + echo "📦 Backup SQLite disponible dans:" + echo " data/notes.db.backup-*" + echo "" + echo "═══════════════════════════════════════════════════════" +else + echo "" + echo "❌ ERREUR LORS DE LA MIGRATION" + echo "" + echo "Pour revenir à SQLite:" + echo " bash scripts/restore-sqlite.sh" + echo "" + echo "Logs d'erreur:" + docker-compose logs notes-app | tail -20 +fi +echo "" From 4da0537c142db142dceeb7eaf7d7bc44fdd8dac6 Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 14 Nov 2025 09:53:01 +0000 Subject: [PATCH 2/2] =?UTF-8?q?Docs:=20Guide=20d'urgence=20r=C3=A9cup?= =?UTF-8?q?=C3=A9ration=20rapide?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit URGENCE-README.md: Guide simplifié pour récupérer les données Points clés: - Confirmation que data/notes.db existe (148KB) - Solution en 1 commande: bash scripts/restore-sqlite.sh - Checklist de vérification - Explication de ce qui a été corrigé Ce fichier est la porte d'entrée pour l'utilisateur qui a perdu ses données. Il explique clairement la situation et donne la solution immédiate. --- URGENCE-README.md | 133 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 133 insertions(+) create mode 100644 URGENCE-README.md diff --git a/URGENCE-README.md b/URGENCE-README.md new file mode 100644 index 0000000..c6d9b10 --- /dev/null +++ b/URGENCE-README.md @@ -0,0 +1,133 @@ +# 🚨 VOS DONNÉES NE SONT PAS PERDUES + +## Situation actuelle + +Votre fichier SQLite existe et contient vos données (148 KB): +``` +✅ data/notes.db - Dernière modification: 13 Nov 17:24 +``` + +Le problème était que l'application chargeait une **nouvelle base SQLite vide** au lieu de votre base existante. + +**✅ CORRECTIF APPLIQUÉ** - L'application détecte maintenant automatiquement la bonne base de données. + +--- + +## 🎯 SOLUTION RAPIDE (2 minutes) + +### Option 1: Restaurer SQLite (RECOMMANDÉ pour l'instant) + +```bash +bash scripts/restore-sqlite.sh +``` + +**Ce script va:** +- ✅ Désactiver PostgreSQL +- ✅ Réactiver SQLite avec vos données +- ✅ Redémarrer l'application + +**Résultat:** Toutes vos données réapparaissent immédiatement. + +--- + +## 🔍 Diagnostic (optionnel) + +Vérifier où sont vos données: + +```bash +node scripts/check-data.js +``` + +Ce script affiche: +- Nombre d'entrées dans SQLite (vos vraies données) +- Nombre d'entrées dans PostgreSQL (si configuré) +- Configuration actuelle de l'application + +--- + +## 🐘 Migration PostgreSQL (plus tard) + +Une fois que tout fonctionne avec SQLite, vous pouvez migrer vers PostgreSQL: + +```bash +bash scripts/switch-to-postgres.sh +``` + +**Ce script va:** +- ✅ Créer un backup de SQLite +- ✅ Activer PostgreSQL +- ✅ Migrer toutes vos données +- ✅ Vérifier que tout fonctionne + +--- + +## 📊 Résumé des fichiers importants + +| Fichier | Description | +|---------|-------------| +| `data/notes.db` | **VOS DONNÉES** (ne pas supprimer!) | +| `scripts/restore-sqlite.sh` | Restauration rapide SQLite | +| `scripts/switch-to-postgres.sh` | Migration vers PostgreSQL | +| `scripts/check-data.js` | Diagnostic des données | +| `RECUPERATION-DONNEES.md` | Guide détaillé complet | + +--- + +## 🆘 Aide rapide + +### Voir les logs +```bash +docker-compose logs notes-app | tail -50 +``` + +### Redémarrer l'application +```bash +docker-compose restart notes-app +``` + +### Vérifier la configuration +```bash +docker exec notes-todo-app env | grep DB +``` + +--- + +## ✅ Checklist après restauration + +- [ ] Application redémarrée +- [ ] Notes visibles dans l'interface +- [ ] Tâches visibles +- [ ] Flux RSS configurés +- [ ] Calendrier fonctionne +- [ ] Paramètres présents + +--- + +## 💡 Ce qui a été corrigé + +**Commit:** `55a1809` - Fix: Chargement automatique SQLite/PostgreSQL + +**Changements:** +- ✅ Nouveau système de détection automatique (`config/database-loader.js`) +- ✅ Tous les fichiers routes/services mis à jour +- ✅ L'application charge maintenant la bonne base selon `DB_TYPE` + +**Avant:** L'app chargeait toujours SQLite, même avec `DB_TYPE=postgres` +**Après:** L'app détecte automatiquement et charge la bonne base + +--- + +## 🎯 Action recommandée MAINTENANT + +**Exécutez cette commande:** +```bash +bash scripts/restore-sqlite.sh +``` + +Vos données réapparaîtront en 2 minutes. + +--- + +**Date:** 2025-11-14 +**Branch:** claude/update-rss-feeds-011CV6EZDsWAUqbRHZR1117Q +**Status:** ✅ Correctif déployé, données récupérables