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 ""