@@ -27,8 +27,9 @@ PG13_EXTENSIONS_TO_DISABLE=(
2727
2828set -eEuo pipefail
2929
30+ SCRIPT_DIR=$( dirname -- " $0 " ; )
3031# shellcheck disable=SC1091
31- source . /pg_upgrade_common.sh
32+ source " $SCRIPT_DIR /pg_upgrade_common.sh"
3233
3334LOG_FILE=" /var/log/pg-upgrade-initiate.log"
3435
@@ -68,13 +69,17 @@ cleanup() {
6869 ship_logs " /var/log/pg_upgrade_output.d/pg_upgrade.log" || true
6970 fi
7071
71- if [ -L /var/lib/postgresql ]; then
72- rm /var/lib/postgresql
73- mv /var/lib/postgresql.bak /var/lib/postgresql
72+ if [ -L " /usr/share/postgresql/${PGVERSION} " ]; then
73+ rm " /usr/share/postgresql/${PGVERSION} "
74+
75+ if [ -f " /usr/share/postgresql/${PGVERSION} .bak" ]; then
76+ mv " /usr/share/postgresql/${PGVERSION} .bak" " /usr/share/postgresql/${PGVERSION} "
77+ fi
7478 fi
7579
76- if [ -L /usr/lib/postgresql/lib/aarch64/libpq.so.5 ]; then
80+ if [ -f " /usr/lib/postgresql/lib/aarch64/libpq.so.5.bak " ]; then
7781 rm /usr/lib/postgresql/lib/aarch64/libpq.so.5
82+ mv /usr/lib/postgresql/lib/aarch64/libpq.so.5.bak /usr/lib/postgresql/lib/aarch64/libpq.so.5
7883 fi
7984
8085 if [ " $IS_DRY_RUN " = false ]; then
@@ -169,10 +174,11 @@ function initiate_upgrade {
169174 chown -R postgres:postgres " /tmp/pg_upgrade_bin/$PGVERSION "
170175
171176 # Make latest libpq available to pg_upgrade
172- mkdir -p /usr/lib/postgresql/lib/ aarch64
173- if [ ! -L /usr/lib/postgresql/lib/ aarch64/libpq.so.5 ]; then
174- ln -s " $PGLIBNEW /libpq.so.5" /usr/lib/postgresql/lib/ aarch64/libpq.so.5
177+ mkdir -p /usr/lib/aarch64-linux-gnu
178+ if [ -f " /usr/lib/aarch64-linux-gnu /libpq.so.5" ]; then
179+ mv /usr/lib/aarch64-linux-gnu /libpq.so.5 /usr/lib/aarch64-linux-gnu /libpq.so.5.bak
175180 fi
181+ ln -s " $PG_UPGRADE_BIN_DIR /libpq.so.5" /usr/lib/aarch64-linux-gnu/libpq.so.5
176182
177183 # upgrade job outputs a log in the cwd; needs write permissions
178184 mkdir -p /tmp/pg_upgrade/
@@ -221,6 +227,14 @@ function initiate_upgrade {
221227 echo " 7. Granting SUPERUSER to postgres user"
222228 run_sql -c " ALTER USER postgres WITH SUPERUSER;"
223229
230+ if [ -d " /usr/share/postgresql/${PGVERSION} " ]; then
231+ mv " /usr/share/postgresql/${PGVERSION} " " /usr/share/postgresql/${PGVERSION} .bak"
232+ fi
233+ ln -s " $PGSHARENEW " " /usr/share/postgresql/${PGVERSION} "
234+
235+ cp --remove-destination " $PGLIBNEW " /* .control " $PGSHARENEW /extension/"
236+ cp --remove-destination " $PGLIBNEW " /* .sql " $PGSHARENEW /extension/"
237+
224238 echo " 8. Creating new data directory, initializing database"
225239 chown -R postgres:postgres " $MOUNT_POINT /"
226240 rm -rf " ${PGDATANEW:? } /"
243257 if [ " $IS_DRY_RUN " = true ]; then
244258 UPGRADE_COMMAND=" $UPGRADE_COMMAND --check"
245259 else
246- mv /var/lib/postgresql /var/lib/postgresql.bak
247- ln -s " $PGSHARENEW " /var/lib/postgresql
248-
249- if [ ! -L /var/lib/postgresql.bak/data ]; then
250- if [ -L /var/lib/postgresql/data ]; then
251- rm /var/lib/postgresql/data
252- fi
253- ln -s /var/lib/postgresql.bak/data /var/lib/postgresql/data
254- fi
255-
256- if [ ! -L /var/lib/postgresql/data ]; then
257- ln -s /data/pgdata /var/lib/postgresql/data
258- fi
259-
260260 echo " 9. Stopping postgres; running pg_upgrade"
261261 systemctl stop postgresql
262262 fi
0 commit comments