diff --git a/backup-database.bash b/backup-database.bash index 306038be..ca68b13c 100644 --- a/backup-database.bash +++ b/backup-database.bash @@ -1,5 +1,10 @@ #!/bin/bash +if [[ -z "$prev_restart_delay" && -n "$cron_restart" ]]; then + echo "skipping initial launch...." + exit 0 +fi + FILE_NAME=data-dump_`date +%Y-%m-%d"_"%H_%M_%S`.sql.br FILE_NAME_COMPLETE=full-dump_`date +%Y-%m-%d"_"%H_%M_%S`.sql.br DATABASE_NAME=database diff --git a/wipe-database.bash b/wipe-database.bash index 5ccc60f2..f3813950 100644 --- a/wipe-database.bash +++ b/wipe-database.bash @@ -45,7 +45,14 @@ fi echo "🧨 Alle Daten aus allen Tabellen werden gelöscht..." -# Generate and run TRUNCATE statements for all tables in the public schema +# Erst müssen wir alle Verbindungen zur Datenbank trennen +docker exec -i "$CONTAINER_NAME" psql -U "$DB_USER" "postgres" <<'EOSQL' +SELECT pg_terminate_backend(pid) +FROM pg_stat_activity +WHERE datname = 'main' AND pid <> pg_backend_pid(); +EOSQL + +# Dann löschen wir die Datenbank und erstellen sie neu docker exec -i "$CONTAINER_NAME" psql -U "$DB_USER" "postgres" <<'EOSQL' DROP DATABASE IF EXISTS main; CREATE DATABASE main WITH OWNER main ENCODING 'UTF8';