-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathrestore.sh
More file actions
35 lines (27 loc) · 1.06 KB
/
Copy pathrestore.sh
File metadata and controls
35 lines (27 loc) · 1.06 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#!/bin/bash
set -a
source /root/fedisea-api/.env
set +a
# Set your backup file names here (or pass as args)
DB_BACKUP_FILE="$1"
ICONS_BACKUP_FILE="$2"
if [[ -z "$DB_BACKUP_FILE" || -z "$ICONS_BACKUP_FILE" ]]; then
echo "Usage: $0 <db_backup.sql.gz> <icons_backup.tar.gz>"
exit 1
fi
echo "Starting restore..."
# Copy Postgres backup into container
echo "Copying Postgres backup $DB_BACKUP_FILE into container..."
docker cp "$DB_BACKUP_FILE" fedisea_db:/backup.sql.gz
# Restore database inside container
echo "Restoring Postgres database from $DB_BACKUP_FILE..."
docker exec -e PGPASSWORD="$DB_PASSWORD" fedisea_db sh -c "gunzip < /backup.sql.gz | psql -U $DB_USER $DB_NAME"
# Remove backup file from container
docker exec fedisea_db rm /backup.sql.gz
# Restore the fedisea_icons named volume via a throwaway container
echo "Restoring icons volume from $ICONS_BACKUP_FILE..."
docker run --rm \
-v fedisea-api_fedisea_icons:/icons \
-v "$(pwd)":/backup \
alpine sh -c "rm -rf /icons/* && tar -xzf /backup/$(basename "$ICONS_BACKUP_FILE") -C /icons"
echo "Restore completed."