Improve usage of pg_dump in backup
This commit is contained in:
parent
731647be9d
commit
f7936633e5
3 changed files with 13 additions and 14 deletions
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -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..."
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue