mirror of
https://github.com/R0m1k3/noteflow.git
synced 2026-10-12 01:39:47 +02:00
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.
88 lines
2.8 KiB
Bash
Executable File
88 lines
2.8 KiB
Bash
Executable File
#!/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 ""
|