diff --git a/script/ci/restore-staging-baseline.sh b/script/ci/restore-staging-baseline.sh index c2945b86cf..71e43ae445 100755 --- a/script/ci/restore-staging-baseline.sh +++ b/script/ci/restore-staging-baseline.sh @@ -5,6 +5,7 @@ set -e +# Load default values if not already set. : ${DB_USER='ofn_user'} : ${DB_DATABASE='openfoodnetwork'} @@ -18,8 +19,28 @@ else exit 1 fi -dropdb -h localhost -U "$DB_USER" "$DB_DATABASE" --if-exists -createdb -h localhost -U "$DB_USER" "$DB_DATABASE" +# We want to re-create the database but it's still in use. +# The SQL query below is a workaround suppoting old postgresql versions. +# +# Once we have at least Postgresql 13, we can replace these SQL commands with: +# +# DROP DATABASE IF EXISTS $DB_DATABASE WITH FORCE +# CREATE DATABASE $DB_DATABASE +# +# Versions: +# - Ubuntu 16: psql 9.5 +# - Ubuntu 18: psql 10 +# - Ubuntu 20: psql 15 <-- switch here +psql -h localhost -U "$DB_USER" postgres < pg_backend_pid() +AND datname='$DB_DATABASE'; +DROP DATABASE $DB_DATABASE; +CREATE DATABASE $DB_DATABASE; +EOF gunzip -c "$srcfile" | psql -h localhost -U "$DB_USER" "$DB_DATABASE" echo "Staging baseline data restored." diff --git a/script/ci/save-staging-baseline.sh b/script/ci/save-staging-baseline.sh index 89225eb7fd..076970d499 100755 --- a/script/ci/save-staging-baseline.sh +++ b/script/ci/save-staging-baseline.sh @@ -5,6 +5,7 @@ set -e +# Load default values if not already set. : ${DB_USER='ofn_user'} : ${DB_DATABASE='openfoodnetwork'}