This commit is contained in:
Moritz Utcke
2025-08-04 19:33:17 -04:00
parent f56684a6e8
commit cbfa49b7bc
6 changed files with 44 additions and 47 deletions

View File

@@ -3,7 +3,7 @@
set -e
# Config
CONTAINER_NAME="online-energieausweis-database-1"
CONTAINER_NAME="database"
DB_USER="main"
DB_NAME="main"
TIMESTAMP=$(date +"%Y-%m-%d_%H-%M-%S")
@@ -39,40 +39,16 @@ fi
if [[ "$SKIP_BACKUP" == false ]]; then
echo "📦 Backup wird erstellt..."
docker exec -t "$CONTAINER_NAME" pg_dumpall -c -U "$DB_USER" | brotli > "$FILE_NAME"
docker exec -t "$CONTAINER_NAME" pg_dumpall -c -U "$DB_USER" | brotli --quality=1 > "$FILE_NAME"
echo "✅ Backup abgeschlossen: $FILE_NAME"
fi
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
-- Truncate all tables
FOR r IN
SELECT tablename
FROM pg_tables
WHERE schemaname = 'public'
LOOP
sql := sql || FORMAT('TRUNCATE TABLE public.%I CASCADE;', r.tablename);
END LOOP;
-- Drop all sequences
FOR r IN
SELECT sequence_name
FROM information_schema.sequences
WHERE sequence_schema = 'public'
LOOP
sql := sql || FORMAT('DROP SEQUENCE IF EXISTS public.%I CASCADE;', r.sequence_name);
END LOOP;
EXECUTE sql;
END
$$;
docker exec -i "$CONTAINER_NAME" psql -U "$DB_USER" "postgres" <<'EOSQL'
DROP DATABASE IF EXISTS main;
CREATE DATABASE main WITH OWNER main ENCODING 'UTF8';
EOSQL
echo "✅ Alle Tabellen gelöscht und Schema zurückgesetzt."