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
|
fi
|
||||||
|
|
||||||
cd /opt/services/immich || exit
|
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
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
cd "$1"
|
|
||||||
|
|
||||||
if [ "$2" != "before" ]; then
|
if [ "$2" != "before" ]; then
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
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;")
|
postgres_tables=$(sudo -u postgres psql -Atc "SELECT datname FROM pg_database WHERE datistemplate = false;")
|
||||||
|
|
||||||
for i in $postgres_tables
|
for i in $postgres_tables
|
||||||
do
|
do
|
||||||
printf "dumping %s ..." "$i"
|
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"
|
echo " done"
|
||||||
done
|
done
|
||||||
|
|
||||||
echo -n "dumping all ..."
|
|
||||||
sudo -u postgres pg_dumpall | gzip >"pg_dumpall.sql.gz"
|
|
||||||
echo " done"
|
|
||||||
|
|
|
||||||
|
|
@ -3,10 +3,11 @@
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
target="$1"
|
target="$1"
|
||||||
recovery_file="pg_dumpall.sql.gz"
|
if [ -z "$target" ]; then
|
||||||
if [ -n "$target" ]; then
|
echo "No target given!"
|
||||||
recovery_file="pg_dump_$target.sql.gz"
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
recovery_file="pg_dump_$target.dump"
|
||||||
|
|
||||||
tmp_dir=$(mktemp -d)
|
tmp_dir=$(mktemp -d)
|
||||||
recovery_file_path="$tmp_dir/opt/services/_backup/postgresql/$recovery_file"
|
recovery_file_path="$tmp_dir/opt/services/_backup/postgresql/$recovery_file"
|
||||||
|
|
@ -20,9 +21,7 @@ echo "Backup restored."
|
||||||
echo "Recovery file: $recovery_file"
|
echo "Recovery file: $recovery_file"
|
||||||
|
|
||||||
echo "Restoring database..."
|
echo "Restoring database..."
|
||||||
cat "$recovery_file_path" \
|
sudo -u postgres pg_restore -C "$recovery_file_path"
|
||||||
| gunzip \
|
|
||||||
| sudo -u postgres psql
|
|
||||||
echo "Database restored."
|
echo "Database restored."
|
||||||
|
|
||||||
echo "Removing temporary files..."
|
echo "Removing temporary files..."
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue