#!/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 " 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"