#!/bin/bash set -e # Config CONTAINER_NAME="online-energieausweis-database-1" DB_USER="main" DB_NAME="main" TIMESTAMP=$(date +"%Y-%m-%d_%H-%M-%S") FILE_NAME="backup-$TIMESTAMP.sql.br" REQUIRED_CONFIRMATION='Ja, ich möchte alle Daten unwiderruflich löschen.' echo "⚠️ WARNUNG: Diese Aktion wird alle Tabellen und Einträge in der Datenbank vollständig löschen!" echo "Um fortzufahren, tippe exakt: \"$REQUIRED_CONFIRMATION\"" echo read -p "> " USER_CONFIRMATION if [[ "$USER_CONFIRMATION" != "$REQUIRED_CONFIRMATION" ]]; then echo "❌ Falsche Eingabe. Abbruch." exit 1 fi echo "📦 Backup wird erstellt..." docker exec -t "$CONTAINER_NAME" pg_dumpall -c -U "$DB_USER" | brotli > "$FILE_NAME" echo "✅ Backup abgeschlossen: $FILE_NAME" echo "🧨 Alle Daten aus allen Tabellen werden gelöscht..." # Generate and run TRUNCATE statements for all tables in the public schema docker exec -i "$CONTAINER_NAME" psql -U "$DB_USER" "$DB_NAME" <<'EOSQL' DO $$ DECLARE r RECORD; sql TEXT := ''; BEGIN FOR r IN SELECT tablename FROM pg_tables WHERE schemaname = 'public' LOOP sql := sql || FORMAT('TRUNCATE TABLE public.%I CASCADE;', r.tablename); END LOOP; EXECUTE sql; END $$; EOSQL echo "✅ Alle Tabellen gelöscht und Schema zurückgesetzt." echo "🚀 Datenbankbereinigung abgeschlossen."