Files
Rbm.FamStack/deploy/scripts/restore.sh
T
2026-10-09 18:25:11 +02:00

27 lines
892 B
Bash

#!/usr/bin/env sh
# Stellt die Datenbank aus einer Backup-Datei wieder her.
# Aufruf aus dem Ordner deploy/: ./scripts/restore.sh backups/familyplanner-20261009-120000.bak
set -eu
if [ $# -ne 1 ] || [ ! -f "$1" ]; then
echo "Aufruf: $0 <backup-datei.bak>" >&2
exit 1
fi
cd "$(dirname "$0")/.."
. ./.env
FILE=$(basename "$1")
echo "Stoppe Anwendung ..."
docker compose stop web api
docker compose cp "$1" "sql:/var/opt/mssql/backup/${FILE}"
docker compose exec -T sql /opt/mssql-tools18/bin/sqlcmd \
-S localhost -U sa -P "$SQL_SA_PASSWORD" -C -b \
-Q "ALTER DATABASE [familyplannerdb] SET SINGLE_USER WITH ROLLBACK IMMEDIATE; RESTORE DATABASE [familyplannerdb] FROM DISK = N'/var/opt/mssql/backup/${FILE}' WITH REPLACE, CHECKSUM; ALTER DATABASE [familyplannerdb] SET MULTI_USER;"
echo "Starte Anwendung ..."
docker compose up -d
echo "Wiederherstellung abgeschlossen."