Files
pfandsystem-demo/restore.sh

65 lines
1.5 KiB
Bash
Raw Normal View History

#!/bin/bash
# Restore-Script für Pfandsystem MySQL Datenbank
set -e
BACKUP_DIR="/root/backups"
# Prüfe ob Backup-Datei angegeben wurde
if [ -z "$1" ]; then
echo "❌ Fehler: Keine Backup-Datei angegeben"
echo ""
echo "Verwendung: ./restore.sh <backup-datei>"
echo ""
echo "Verfügbare Backups:"
ls -lh "$BACKUP_DIR"/pfandsystem_backup_*.sql.gz 2>/dev/null || echo " Keine Backups gefunden"
exit 1
fi
BACKUP_FILE="$1"
# Prüfe ob Backup-Datei existiert
if [ ! -f "$BACKUP_FILE" ]; then
echo "❌ Fehler: Backup-Datei nicht gefunden: $BACKUP_FILE"
exit 1
fi
echo "⚠️ WARNUNG: Dieser Vorgang überschreibt die aktuelle Datenbank!"
echo "Backup-Datei: $BACKUP_FILE"
echo ""
read -p "Fortfahren? (yes/no): " CONFIRM
if [ "$CONFIRM" != "yes" ]; then
echo "Abgebrochen."
exit 0
fi
echo ""
echo "🗄️ Starte Datenbank-Wiederherstellung..."
# Entpacken falls .gz
if [[ "$BACKUP_FILE" == *.gz ]]; then
echo "📦 Entpacke Backup..."
TEMP_FILE="/tmp/restore_temp.sql"
gunzip -c "$BACKUP_FILE" > "$TEMP_FILE"
else
TEMP_FILE="$BACKUP_FILE"
fi
# Datenbank wiederherstellen
echo "💾 Importiere Datenbank..."
docker exec -i pfandsystem-mysql mysql \
-u pfandsystem \
-ppfandsystem_secure_password \
pfandsystem < "$TEMP_FILE"
# Temporäre Datei löschen
if [[ "$BACKUP_FILE" == *.gz ]]; then
rm "$TEMP_FILE"
fi
echo "✅ Datenbank erfolgreich wiederhergestellt!"
echo ""
echo "🔄 Container neu starten empfohlen:"
echo " docker-compose restart backend"