diff --git a/_integration-test/ensure-backup-restore-works.sh b/_integration-test/ensure-backup-restore-works.sh new file mode 100755 index 0000000..881211d --- /dev/null +++ b/_integration-test/ensure-backup-restore-works.sh @@ -0,0 +1,34 @@ +#!/usr/bin/env bash +set -ex + +source install/_lib.sh +source install/dc-detect-version.sh + +echo "${_group}Test that backup/restore works..." +echo "Creating backup..." +# Docker was giving me permissioning issues when trying to create this file and write to it even after giving read + write access +# to group and owner. Instead, try creating the empty file and then give everyone write access to the backup file +touch $(pwd)/sentry/backup.json +chmod 666 $(pwd)/sentry/backup.json +# Command here matches exactly what we have in our docs https://develop.sentry.dev/self-hosted/backup/#backup +docker-compose run -v $(pwd)/sentry:/sentry-data/backup --rm -T -e SENTRY_LOG_LEVEL=CRITICAL web export /sentry-data/backup/backup.json +# Check to make sure there is content in the file +if [ ! -s "$(pwd)/sentry/backup.json" ]; then + echo "Backup file is empty" + exit 1 +fi + +# Bring postgres down and recreate the docker volume +docker-compose stop postgres +sleep 5 +docker-compose rm -f -v postgres +docker volume rm sentry-postgres +export SKIP_USER_CREATION=1 +source install/create-docker-volumes.sh +source install/set-up-and-migrate-database.sh +docker-compose up -d + +echo "Importing backup..." +docker-compose run --rm -T web import /etc/sentry/backup.json + +rm $(pwd)/sentry/backup.json diff --git a/integration-test.sh b/integration-test.sh index 68ff0df..10477f2 100755 --- a/integration-test.sh +++ b/integration-test.sh @@ -10,6 +10,7 @@ echo "Testing initial install" ./install.sh _integration-test/run.sh _integration-test/ensure-customizations-not-present.sh +_integration-test/ensure-backup-restore-works.sh echo "Make customizations" cat <sentry/enhance-image.sh @@ -25,3 +26,4 @@ echo "Testing in-place upgrade and customizations" ./install.sh --minimize-downtime _integration-test/run.sh _integration-test/ensure-customizations-work.sh +_integration-test/ensure-backup-restore-works.sh