infrastructure/playbooks/roles/backup/files/recovery/immich_database

32 lines
801 B
Bash
Executable file

#!/usr/bin/env bash
set -e
tmp_dir=$(mktemp -d)
cd /opt/services/backup/
echo "Restoring backup..."
autorestic -c .autorestic.all.yml restore -l immich_database --from borgbase --to "$tmp_dir"
echo "Backup restored."
cd /opt/services/immich
echo "Starting database..."
docker compose up -d database
echo "Waiting for database to start..."
sleep 10
echo "Restoring database..."
cat "$tmp_dir/opt/services/_backup/immich_database/immich.sql.gz" \
| gunzip \
| sed "s/SELECT pg_catalog.set_config('search_path', '', false);/SELECT pg_catalog.set_config('search_path', 'public, pg_catalog', true);/g" \
| docker exec -i immich-database-1 psql --username=immich
echo "Database restored."
echo "Removing temporary files..."
rm -rf "$tmp_dir"
echo "Starting services..."
docker compose up -d