27 lines
892 B
Bash
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."
|