Automatisches löschen der Autoincrement Sequenzen
This commit is contained in:
@@ -9,6 +9,22 @@ DB_NAME="main"
|
|||||||
TIMESTAMP=$(date +"%Y-%m-%d_%H-%M-%S")
|
TIMESTAMP=$(date +"%Y-%m-%d_%H-%M-%S")
|
||||||
FILE_NAME="backup-$TIMESTAMP.sql.br"
|
FILE_NAME="backup-$TIMESTAMP.sql.br"
|
||||||
|
|
||||||
|
# Wir holen uns den parameter --skip-backup, um zu entscheiden, ob wir ein Backup machen wollen
|
||||||
|
SKIP_BACKUP=false
|
||||||
|
|
||||||
|
while [[ $# -gt 0 ]]; do
|
||||||
|
case $1 in
|
||||||
|
--skip-backup)
|
||||||
|
SKIP_BACKUP=true
|
||||||
|
shift # Remove the argument from the list
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Unbekannter Parameter: $1"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
REQUIRED_CONFIRMATION='Ja, ich möchte alle Daten unwiderruflich löschen.'
|
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 "⚠️ WARNUNG: Diese Aktion wird alle Tabellen und Einträge in der Datenbank vollständig löschen!"
|
||||||
@@ -21,9 +37,11 @@ if [[ "$USER_CONFIRMATION" != "$REQUIRED_CONFIRMATION" ]]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "📦 Backup wird erstellt..."
|
if [[ "$SKIP_BACKUP" == false ]]; then
|
||||||
docker exec -t "$CONTAINER_NAME" pg_dumpall -c -U "$DB_USER" | brotli > "$FILE_NAME"
|
echo "📦 Backup wird erstellt..."
|
||||||
echo "✅ Backup abgeschlossen: $FILE_NAME"
|
docker exec -t "$CONTAINER_NAME" pg_dumpall -c -U "$DB_USER" | brotli > "$FILE_NAME"
|
||||||
|
echo "✅ Backup abgeschlossen: $FILE_NAME"
|
||||||
|
fi
|
||||||
|
|
||||||
echo "🧨 Alle Daten aus allen Tabellen werden gelöscht..."
|
echo "🧨 Alle Daten aus allen Tabellen werden gelöscht..."
|
||||||
|
|
||||||
@@ -34,6 +52,7 @@ DECLARE
|
|||||||
r RECORD;
|
r RECORD;
|
||||||
sql TEXT := '';
|
sql TEXT := '';
|
||||||
BEGIN
|
BEGIN
|
||||||
|
-- Truncate all tables
|
||||||
FOR r IN
|
FOR r IN
|
||||||
SELECT tablename
|
SELECT tablename
|
||||||
FROM pg_tables
|
FROM pg_tables
|
||||||
@@ -42,7 +61,16 @@ BEGIN
|
|||||||
sql := sql || FORMAT('TRUNCATE TABLE public.%I CASCADE;', r.tablename);
|
sql := sql || FORMAT('TRUNCATE TABLE public.%I CASCADE;', r.tablename);
|
||||||
END LOOP;
|
END LOOP;
|
||||||
|
|
||||||
EXECUTE sql;
|
-- 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
|
END
|
||||||
$$;
|
$$;
|
||||||
EOSQL
|
EOSQL
|
||||||
|
|||||||
Reference in New Issue
Block a user