view scripts/restore-ipdp.sh @ 608:5cb80996e4d5 tip

fix name of ipdp install, add backup/restore/update scripts
author Justin Kleinknecht <justin.kleinknecht@mcoecn.org>
date Tue, 01 Jul 2025 21:00:04 +0100
parents
children
line wrap: on
line source
#!/bin/bash 

source "${SSDT_SCRIPTS:-$(dirname "${BASH_SOURCE[0]}")}/.functions.sh"

sourceFile=${1?must provide backup file to be restored}

if [ -z "$1" ]
then
  echo "Usage: `basename $0` {backup file to restore}"
  echo " must specify the name of the file to restore.  Assumed to be in format:"
  echo "     {entityId}-ipdp-db.{timestamp}.backup.gz  "
  exit $E_NOARGS
fi

function prop {
   grep "${1}" .env/ipdp-shared.properties|cut -d'=' -f2
}

entityId=$(prop 'entityId' | tr -d '"')
dbContainerName="$entityId-ipdp-db"
appContainerName="$entityId-ipdp-app"
target="ipdpdb"

echo
echo "Preparing to restore"
echo "--------------------"
echo "   file: $sourceFile"
echo "   to    $dbContainerName database: $target"
echo " "
echo "WARNING:  This operation will DELETE and replace any exising database"
echo " "

read -e -p "Continue? <y/N> " answer
case $answer in
     y | Y | yes | YES ) answer="y";;
     n | N | no | NO ) answer="n";;
     *) answer="n"
esac

if [ "$answer" == "y" ]
then
  echo "stopping application service $appContainerName"
  docker stop $appContainerName

  echo "copy backup file to database container"
  docker cp ${sourceFile} ${dbContainerName}:/tmp/restore.backup.gz

  echo "starting database restore"
  docker exec -t -u postgres $dbContainerName sh -c "gunzip -f /tmp/restore.backup.gz -c | psql"

fi