Improve usage of pg_dump in backup

This commit is contained in:
Tobias Reisinger 2026-02-01 20:33:25 +01:00
parent 731647be9d
commit f7936633e5
Signed by: serguzim
GPG key ID: 13AD60C237A28DFE
3 changed files with 13 additions and 14 deletions

View file

@ -7,4 +7,5 @@ if [ "$2" != "before" ]; then
fi
cd /opt/services/immich || exit
docker compose exec database sh -c 'pg_dump -U "$DB_USERNAME" "$DB_DATABASE"' | gzip >"$backup_path/immich.sql.gz"
docker compose exec database sh -c 'pg_dump -U "$DB_USERNAME" -Fc -C -Zzstd:5 "$DB_DATABASE"' >"$backup_path/immich.dump"

View file

@ -1,20 +1,19 @@
#!/usr/bin/env bash
cd "$1"
if [ "$2" != "before" ]; then
exit 0
fi
cd "$1"
sudo rm -r "$1"/*.dump || true
sudo chown postgres:postgres "$1"
postgres_tables=$(sudo -u postgres psql -Atc "SELECT datname FROM pg_database WHERE datistemplate = false;")
for i in $postgres_tables
do
printf "dumping %s ..." "$i"
sudo -u postgres pg_dump "$i" | gzip >"pg_dump_$i.sql.gz"
sudo -u postgres pg_dump -Fd -C -Zzstd:5 -j2 -f"pg_dump_$i.dump" "$i"
echo " done"
done
echo -n "dumping all ..."
sudo -u postgres pg_dumpall | gzip >"pg_dumpall.sql.gz"
echo " done"

View file

@ -3,10 +3,11 @@
set -e
target="$1"
recovery_file="pg_dumpall.sql.gz"
if [ -n "$target" ]; then
recovery_file="pg_dump_$target.sql.gz"
if [ -z "$target" ]; then
echo "No target given!"
exit 1
fi
recovery_file="pg_dump_$target.dump"
tmp_dir=$(mktemp -d)
recovery_file_path="$tmp_dir/opt/services/_backup/postgresql/$recovery_file"
@ -20,9 +21,7 @@ echo "Backup restored."
echo "Recovery file: $recovery_file"
echo "Restoring database..."
cat "$recovery_file_path" \
| gunzip \
| sudo -u postgres psql
sudo -u postgres pg_restore -C "$recovery_file_path"
echo "Database restored."
echo "Removing temporary files..."