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

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
rev   line source
608
5cb80996e4d5 fix name of ipdp install, add backup/restore/update scripts
Justin Kleinknecht <justin.kleinknecht@mcoecn.org>
parents:
diff changeset
1 #!/bin/bash
5cb80996e4d5 fix name of ipdp install, add backup/restore/update scripts
Justin Kleinknecht <justin.kleinknecht@mcoecn.org>
parents:
diff changeset
2
5cb80996e4d5 fix name of ipdp install, add backup/restore/update scripts
Justin Kleinknecht <justin.kleinknecht@mcoecn.org>
parents:
diff changeset
3 source "${SSDT_SCRIPTS:-$(dirname "${BASH_SOURCE[0]}")}/.functions.sh"
5cb80996e4d5 fix name of ipdp install, add backup/restore/update scripts
Justin Kleinknecht <justin.kleinknecht@mcoecn.org>
parents:
diff changeset
4
5cb80996e4d5 fix name of ipdp install, add backup/restore/update scripts
Justin Kleinknecht <justin.kleinknecht@mcoecn.org>
parents:
diff changeset
5 sourceFile=${1?must provide backup file to be restored}
5cb80996e4d5 fix name of ipdp install, add backup/restore/update scripts
Justin Kleinknecht <justin.kleinknecht@mcoecn.org>
parents:
diff changeset
6
5cb80996e4d5 fix name of ipdp install, add backup/restore/update scripts
Justin Kleinknecht <justin.kleinknecht@mcoecn.org>
parents:
diff changeset
7 if [ -z "$1" ]
5cb80996e4d5 fix name of ipdp install, add backup/restore/update scripts
Justin Kleinknecht <justin.kleinknecht@mcoecn.org>
parents:
diff changeset
8 then
5cb80996e4d5 fix name of ipdp install, add backup/restore/update scripts
Justin Kleinknecht <justin.kleinknecht@mcoecn.org>
parents:
diff changeset
9 echo "Usage: `basename $0` {backup file to restore}"
5cb80996e4d5 fix name of ipdp install, add backup/restore/update scripts
Justin Kleinknecht <justin.kleinknecht@mcoecn.org>
parents:
diff changeset
10 echo " must specify the name of the file to restore. Assumed to be in format:"
5cb80996e4d5 fix name of ipdp install, add backup/restore/update scripts
Justin Kleinknecht <justin.kleinknecht@mcoecn.org>
parents:
diff changeset
11 echo " {entityId}-ipdp-db.{timestamp}.backup.gz "
5cb80996e4d5 fix name of ipdp install, add backup/restore/update scripts
Justin Kleinknecht <justin.kleinknecht@mcoecn.org>
parents:
diff changeset
12 exit $E_NOARGS
5cb80996e4d5 fix name of ipdp install, add backup/restore/update scripts
Justin Kleinknecht <justin.kleinknecht@mcoecn.org>
parents:
diff changeset
13 fi
5cb80996e4d5 fix name of ipdp install, add backup/restore/update scripts
Justin Kleinknecht <justin.kleinknecht@mcoecn.org>
parents:
diff changeset
14
5cb80996e4d5 fix name of ipdp install, add backup/restore/update scripts
Justin Kleinknecht <justin.kleinknecht@mcoecn.org>
parents:
diff changeset
15 function prop {
5cb80996e4d5 fix name of ipdp install, add backup/restore/update scripts
Justin Kleinknecht <justin.kleinknecht@mcoecn.org>
parents:
diff changeset
16 grep "${1}" .env/ipdp-shared.properties|cut -d'=' -f2
5cb80996e4d5 fix name of ipdp install, add backup/restore/update scripts
Justin Kleinknecht <justin.kleinknecht@mcoecn.org>
parents:
diff changeset
17 }
5cb80996e4d5 fix name of ipdp install, add backup/restore/update scripts
Justin Kleinknecht <justin.kleinknecht@mcoecn.org>
parents:
diff changeset
18
5cb80996e4d5 fix name of ipdp install, add backup/restore/update scripts
Justin Kleinknecht <justin.kleinknecht@mcoecn.org>
parents:
diff changeset
19 entityId=$(prop 'entityId' | tr -d '"')
5cb80996e4d5 fix name of ipdp install, add backup/restore/update scripts
Justin Kleinknecht <justin.kleinknecht@mcoecn.org>
parents:
diff changeset
20 dbContainerName="$entityId-ipdp-db"
5cb80996e4d5 fix name of ipdp install, add backup/restore/update scripts
Justin Kleinknecht <justin.kleinknecht@mcoecn.org>
parents:
diff changeset
21 appContainerName="$entityId-ipdp-app"
5cb80996e4d5 fix name of ipdp install, add backup/restore/update scripts
Justin Kleinknecht <justin.kleinknecht@mcoecn.org>
parents:
diff changeset
22 target="ipdpdb"
5cb80996e4d5 fix name of ipdp install, add backup/restore/update scripts
Justin Kleinknecht <justin.kleinknecht@mcoecn.org>
parents:
diff changeset
23
5cb80996e4d5 fix name of ipdp install, add backup/restore/update scripts
Justin Kleinknecht <justin.kleinknecht@mcoecn.org>
parents:
diff changeset
24 echo
5cb80996e4d5 fix name of ipdp install, add backup/restore/update scripts
Justin Kleinknecht <justin.kleinknecht@mcoecn.org>
parents:
diff changeset
25 echo "Preparing to restore"
5cb80996e4d5 fix name of ipdp install, add backup/restore/update scripts
Justin Kleinknecht <justin.kleinknecht@mcoecn.org>
parents:
diff changeset
26 echo "--------------------"
5cb80996e4d5 fix name of ipdp install, add backup/restore/update scripts
Justin Kleinknecht <justin.kleinknecht@mcoecn.org>
parents:
diff changeset
27 echo " file: $sourceFile"
5cb80996e4d5 fix name of ipdp install, add backup/restore/update scripts
Justin Kleinknecht <justin.kleinknecht@mcoecn.org>
parents:
diff changeset
28 echo " to $dbContainerName database: $target"
5cb80996e4d5 fix name of ipdp install, add backup/restore/update scripts
Justin Kleinknecht <justin.kleinknecht@mcoecn.org>
parents:
diff changeset
29 echo " "
5cb80996e4d5 fix name of ipdp install, add backup/restore/update scripts
Justin Kleinknecht <justin.kleinknecht@mcoecn.org>
parents:
diff changeset
30 echo "WARNING: This operation will DELETE and replace any exising database"
5cb80996e4d5 fix name of ipdp install, add backup/restore/update scripts
Justin Kleinknecht <justin.kleinknecht@mcoecn.org>
parents:
diff changeset
31 echo " "
5cb80996e4d5 fix name of ipdp install, add backup/restore/update scripts
Justin Kleinknecht <justin.kleinknecht@mcoecn.org>
parents:
diff changeset
32
5cb80996e4d5 fix name of ipdp install, add backup/restore/update scripts
Justin Kleinknecht <justin.kleinknecht@mcoecn.org>
parents:
diff changeset
33 read -e -p "Continue? <y/N> " answer
5cb80996e4d5 fix name of ipdp install, add backup/restore/update scripts
Justin Kleinknecht <justin.kleinknecht@mcoecn.org>
parents:
diff changeset
34 case $answer in
5cb80996e4d5 fix name of ipdp install, add backup/restore/update scripts
Justin Kleinknecht <justin.kleinknecht@mcoecn.org>
parents:
diff changeset
35 y | Y | yes | YES ) answer="y";;
5cb80996e4d5 fix name of ipdp install, add backup/restore/update scripts
Justin Kleinknecht <justin.kleinknecht@mcoecn.org>
parents:
diff changeset
36 n | N | no | NO ) answer="n";;
5cb80996e4d5 fix name of ipdp install, add backup/restore/update scripts
Justin Kleinknecht <justin.kleinknecht@mcoecn.org>
parents:
diff changeset
37 *) answer="n"
5cb80996e4d5 fix name of ipdp install, add backup/restore/update scripts
Justin Kleinknecht <justin.kleinknecht@mcoecn.org>
parents:
diff changeset
38 esac
5cb80996e4d5 fix name of ipdp install, add backup/restore/update scripts
Justin Kleinknecht <justin.kleinknecht@mcoecn.org>
parents:
diff changeset
39
5cb80996e4d5 fix name of ipdp install, add backup/restore/update scripts
Justin Kleinknecht <justin.kleinknecht@mcoecn.org>
parents:
diff changeset
40 if [ "$answer" == "y" ]
5cb80996e4d5 fix name of ipdp install, add backup/restore/update scripts
Justin Kleinknecht <justin.kleinknecht@mcoecn.org>
parents:
diff changeset
41 then
5cb80996e4d5 fix name of ipdp install, add backup/restore/update scripts
Justin Kleinknecht <justin.kleinknecht@mcoecn.org>
parents:
diff changeset
42 echo "stopping application service $appContainerName"
5cb80996e4d5 fix name of ipdp install, add backup/restore/update scripts
Justin Kleinknecht <justin.kleinknecht@mcoecn.org>
parents:
diff changeset
43 docker stop $appContainerName
5cb80996e4d5 fix name of ipdp install, add backup/restore/update scripts
Justin Kleinknecht <justin.kleinknecht@mcoecn.org>
parents:
diff changeset
44
5cb80996e4d5 fix name of ipdp install, add backup/restore/update scripts
Justin Kleinknecht <justin.kleinknecht@mcoecn.org>
parents:
diff changeset
45 echo "copy backup file to database container"
5cb80996e4d5 fix name of ipdp install, add backup/restore/update scripts
Justin Kleinknecht <justin.kleinknecht@mcoecn.org>
parents:
diff changeset
46 docker cp ${sourceFile} ${dbContainerName}:/tmp/restore.backup.gz
5cb80996e4d5 fix name of ipdp install, add backup/restore/update scripts
Justin Kleinknecht <justin.kleinknecht@mcoecn.org>
parents:
diff changeset
47
5cb80996e4d5 fix name of ipdp install, add backup/restore/update scripts
Justin Kleinknecht <justin.kleinknecht@mcoecn.org>
parents:
diff changeset
48 echo "starting database restore"
5cb80996e4d5 fix name of ipdp install, add backup/restore/update scripts
Justin Kleinknecht <justin.kleinknecht@mcoecn.org>
parents:
diff changeset
49 docker exec -t -u postgres $dbContainerName sh -c "gunzip -f /tmp/restore.backup.gz -c | psql"
5cb80996e4d5 fix name of ipdp install, add backup/restore/update scripts
Justin Kleinknecht <justin.kleinknecht@mcoecn.org>
parents:
diff changeset
50
5cb80996e4d5 fix name of ipdp install, add backup/restore/update scripts
Justin Kleinknecht <justin.kleinknecht@mcoecn.org>
parents:
diff changeset
51 fi