Skip to content
Snippets Groups Projects
restore_postgresql.sh 602 B
Newer Older
#
# Restores all databases (might throw errros, see pg docs).
# Might require to regrant privileges or ownership of created objects.
#
# ```
# \c database
# GRANT ALL PRIVILEGES ON SCHEMA public TO y;
# GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO y;
# GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO y;
# ```
`
set -ex
umask 077

tar_file="$1"

temp_dir=$(mktemp -d)
tar xzf "$tar_file" -C "$temp_dir"
chown -R postgres "${temp_dir}"
find "$temp_dir" -type f -name '*.sql' | while read -r dump_file; do
    su -c "psql < '$dump_file'" postgres
rm -rf "$temp_dir"