Skip to content

Commit

Permalink
fix: reset public schema before restore pg_dump (#20)
Browse files Browse the repository at this point in the history
* fix: reset public schema

* update: changelog

* feature: add survey script

* fix: shellcheck rules [SC1091] [SC2162]
  • Loading branch information
askonev authored Mar 15, 2024
1 parent 15b499c commit a96406e
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 1 deletion.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

### New Features

* [fix] restore_backup.sh restores the default public scheme
* SSL configuration is enabled by default
* Add backup and restore scripts
* Add `markdownlint` check in CI
Expand Down
38 changes: 37 additions & 1 deletion restore_backup.sh
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,44 @@ CPU_COUNT=4
DB_CONTAINER_ID=$(docker-compose ps -q db)
BACKUP_NAME="${BACKUP_NAME:-unknown-backup}"


echo 'The script restores the default state of the' \
'public schema, which will delete all data'

while true; do

echo "Continue? (yes/no) "
read -r yn

case $yn in
yes ) echo 'start of dump recovery';
break;;
no ) echo 'exiting...';
exit 1;;
* ) echo 'invalid response';;
esac

done


# download dump
aws s3 cp s3://palladium-backup/"$BACKUP_NAME" .

# reset the public schema & define access privileges
docker exec \
-u postgres \
"$DB_CONTAINER_ID" \
psql -c \
'DROP SCHEMA public CASCADE; CREATE SCHEMA public; GRANT ALL ON SCHEMA public TO postgres; GRANT ALL ON SCHEMA public TO public;'

# restore pg_backup
docker cp "$BACKUP_NAME" "$DB_CONTAINER_ID":/tmp/
docker exec "$DB_CONTAINER_ID" pg_restore -j $CPU_COUNT -U postgres -d postgres /tmp/"$BACKUP_NAME"
docker exec "$DB_CONTAINER_ID" \
pg_restore \
-j $CPU_COUNT \
-U postgres \
-d postgres \
/tmp/"$BACKUP_NAME"
docker exec "$DB_CONTAINER_ID" rm /tmp/"$BACKUP_NAME"

rm "$BACKUP_NAME"

0 comments on commit a96406e

Please sign in to comment.