awips2/deltaScripts/18.2.1/DR6508/6508_uninstall_legacy.sh
2022-05-05 12:34:50 -05:00

47 lines
1.5 KiB
Bash
Executable file

#!/bin/bash
# This script uninstalls PostGIS legacy functions from all Postgres databases.
# Run as root on all Postgres servers. Postgres must be running for this to
# work.
#
# Author: tgurney
psql=/awips2/psql/bin/psql
scripts_dir="/awips2/postgresql/share/contrib/postgis-2.2"
echo INFO: Starting PostGIS legacy function removal
databases=$(${psql} --db metadata -U awipsadmin -Atc "
select datname
from pg_database
where datistemplate = false
and datname not in ('awips', 'postgres');
")
if [[ -z "${databases}" ]]; then
echo "ERROR: Failed to get a list of databases. Make sure postgres is running and pg_hba.conf is allowing connections."
exit 1
fi
echo INFO: Found databases: ${databases}
for db in ${databases} ; do
echo -n " ${db}... "
has_extension=$(${psql} --db ${db} -U awipsadmin -Atc "
select 'y' from pg_extension where extname like 'postgis%' limit 1;
")
if [[ "$?" -ne 0 ]]; then
echo "ERROR: Failed to query the ${db} database. Make sure postgres is running and pg_hba.conf is allowing connections."
continue
fi
if [[ "${has_extension}" == "y" ]]; then
echo "found PostGIS"
echo "INFO: Uninstalling legacy functions from ${db}"
${psql} --db "${db}" -U awipsadmin -f "${scripts_dir}"/uninstall_legacy.sql >/dev/null 2>&1
echo "INFO: Done uninstalling legacy functions from ${db}"
else
echo "no PostGIS found."
fi
done
echo INFO: Finished PostGIS legacy function removal