From b1f671e716be4ece7d4e4f205d6e1402a8defee0 Mon Sep 17 00:00:00 2001 From: Ubuntu Date: Mon, 26 Jan 2026 12:46:49 +0000 Subject: [PATCH] first commit --- copier/backup_db.sh | 44 ++++++++++++++++++++++++++++++++++++++++ restore/restore_dump.sh | 45 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 89 insertions(+) create mode 100755 copier/backup_db.sh create mode 100755 restore/restore_dump.sh diff --git a/copier/backup_db.sh b/copier/backup_db.sh new file mode 100755 index 0000000..53845b3 --- /dev/null +++ b/copier/backup_db.sh @@ -0,0 +1,44 @@ +#!/bin/bash +set -e + +# ----------------------------- +# INPUTS +# ----------------------------- +CONTAINER_NAME="54e" +DB_PORT="5432" +DB_NAME="mytestdb" + +# ----------------------------- +# VALIDATION +# ----------------------------- +if [ -z "$CONTAINER_NAME" ] || [ -z "$DB_PORT" ] || [ -z "$DB_NAME" ]; then + echo "Usage: $0 " + exit 1 +fi + +# ----------------------------- +# CONFIG +# ----------------------------- +PG_USER="postgres" +BACKUP_DIR="./backups" +DATE_STR=$(date +"%d_%m_%Y") +BACKUP_FILE="${DB_NAME}_${DATE_STR}.dump" + +mkdir -p "$BACKUP_DIR" + +# ----------------------------- +# BACKUP +# ----------------------------- +echo "Taking custom-format backup (.dump) of '$DB_NAME' from container '$CONTAINER_NAME'..." + +docker exec "$CONTAINER_NAME" \ + pg_dump \ + -U "$PG_USER" \ + -p "$DB_PORT" \ + -Fc \ + -Z 6 \ + "$DB_NAME" > "$BACKUP_DIR/$BACKUP_FILE" + +echo "Backup completed successfully:" +echo "$BACKUP_DIR/$BACKUP_FILE" + diff --git a/restore/restore_dump.sh b/restore/restore_dump.sh new file mode 100755 index 0000000..b6b6619 --- /dev/null +++ b/restore/restore_dump.sh @@ -0,0 +1,45 @@ +#!/bin/bash +set -e + +# ----------------------------- +# INPUTS +# ----------------------------- +CONTAINER_NAME="$1" +DB_PORT="$2" +DUMP_FILE="$3" + +# ----------------------------- +# VALIDATION +# ----------------------------- +if [ -z "$CONTAINER_NAME" ] || [ -z "$DB_PORT" ] || [ -z "$DUMP_FILE" ]; then + echo "Usage: $0 " + exit 1 +fi + +if [ ! -f "$DUMP_FILE" ]; then + echo "Dump file not found: $DUMP_FILE" + exit 1 +fi + +# ----------------------------- +# CONFIG +# ----------------------------- +PG_USER="postgres" + +# ----------------------------- +# RESTORE +# ----------------------------- +echo "Restoring dump '$DUMP_FILE' into container '$CONTAINER_NAME'..." + +docker exec -i "$CONTAINER_NAME" \ + pg_restore \ + -U "$PG_USER" \ + -p "$DB_PORT" \ + --clean \ + --if-exists \ + --no-owner \ + --no-privileges \ + -d postgres < "$DUMP_FILE" + +echo "Restore completed successfully." +