diff --git a/Dockerfile b/Dockerfile index d94f65b..b8f9e5e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,6 @@ -FROM python:3-alpine +# With Python 3.12.4 on Alpine 3.20, s3cmd 2.4.0 fails with an AttributeError. +# See ITSE-1440 for details. +FROM python:3.12.3-alpine # Current version of s3cmd is in edge/testing repo RUN echo https://dl-cdn.alpinelinux.org/alpine/edge/testing >> /etc/apk/repositories diff --git a/application/restore.sh b/application/restore.sh index 9c9a48c..e506608 100755 --- a/application/restore.sh +++ b/application/restore.sh @@ -24,8 +24,14 @@ if [ -z "${result}" ]; then message="Database "${DB_NAME}" on host "${DB_HOST}" does not exist." echo "${MYNAME}: INFO: ${message}" else + message="finding current owner of DB ${DB_NAME}" + echo "${MYNAME}: ${message}" + db_owner=$(psql --host=${DB_HOST} --username=${DB_ROOTUSER} --command='\list' | grep ${DB_NAME} | cut -d '|' -f 2 | sed -e 's/ *//g') + message="Database owner is ${db_owner}" + echo "${MYNAME}: INFO: ${message}" + echo "${MYNAME}: deleting database ${DB_NAME}" - result=$(psql --host=${DB_HOST} --dbname=postgres --username=${DB_USER} --command="DROP DATABASE ${DB_NAME};") + result=$(psql --host=${DB_HOST} --dbname=postgres --username=${db_owner} --command="DROP DATABASE ${DB_NAME};") if [ "${result}" != "DROP DATABASE" ]; then message="Drop database command failed: ${result}" echo "${MYNAME}: FATAL: ${message}"