From 08917b0e83142a8b4efa3e9f5825bf793d9d0946 Mon Sep 17 00:00:00 2001 From: Paul Cioanca Date: Tue, 4 Apr 2023 11:13:07 +0300 Subject: [PATCH 1/3] chore: only update libpq reference if major version older than current --- ansible/files/admin_api_scripts/pg_upgrade_initiate.sh | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/ansible/files/admin_api_scripts/pg_upgrade_initiate.sh b/ansible/files/admin_api_scripts/pg_upgrade_initiate.sh index def3e9c18..4b7f9346b 100644 --- a/ansible/files/admin_api_scripts/pg_upgrade_initiate.sh +++ b/ansible/files/admin_api_scripts/pg_upgrade_initiate.sh @@ -162,10 +162,12 @@ function initiate_upgrade { chown -R postgres:postgres "/tmp/pg_upgrade_bin/$PGVERSION" - # Make latest libpq available to pg_upgrade - mkdir -p /usr/lib/postgresql/lib/aarch64 - if [ ! -L /usr/lib/postgresql/lib/aarch64/libpq.so.5 ]; then - ln -s "$PGLIBNEW/libpq.so.5" /usr/lib/postgresql/lib/aarch64/libpq.so.5 + if [[ "$OLD_PGVERSION" =~ 14* || "$OLD_PGVERSION" =~ 13* ]]; then + # Make latest libpq available to pg_upgrade + mkdir -p /usr/lib/postgresql/lib/aarch64 + if [ ! -L /usr/lib/postgresql/lib/aarch64/libpq.so.5 ]; then + ln -s "$PGLIBNEW/libpq.so.5" /usr/lib/postgresql/lib/aarch64/libpq.so.5 + fi fi # upgrade job outputs a log in the cwd; needs write permissions From 42e23f45a80e97d003667dc17c5876cc32d0b31d Mon Sep 17 00:00:00 2001 From: Paul Cioanca Date: Fri, 7 Apr 2023 14:39:12 +0300 Subject: [PATCH 2/3] chore: extra handling for extensions --- .../files/admin_api_scripts/pg_upgrade_initiate.sh | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/ansible/files/admin_api_scripts/pg_upgrade_initiate.sh b/ansible/files/admin_api_scripts/pg_upgrade_initiate.sh index 4b7f9346b..f8bd3acf9 100644 --- a/ansible/files/admin_api_scripts/pg_upgrade_initiate.sh +++ b/ansible/files/admin_api_scripts/pg_upgrade_initiate.sh @@ -60,7 +60,7 @@ cleanup() { if [ -d "${MOUNT_POINT}/pgdata/pg_upgrade_output.d/" ]; then echo "Copying pg_upgrade output to /var/log" - cp -R "${MOUNT_POINT}/pgdata/pg_upgrade_output.d/" /var/log/ + cp -R "${MOUNT_POINT}/pgdata/pg_upgrade_output.d/" /var/log/ || true fi if [ -L /var/lib/postgresql ]; then @@ -136,6 +136,7 @@ function initiate_upgrade { if [[ "$OLD_PGVERSION" =~ 14* ]]; then SHARED_PRELOAD_LIBRARIES=$(echo "$SHARED_PRELOAD_LIBRARIES" | sed "s/wrappers, //") fi + SHARED_PRELOAD_LIBRARIES=$(echo "$SHARED_PRELOAD_LIBRARIES" | sed "s/pg_cron, //") PGDATAOLD=$(cat /etc/postgresql/postgresql.conf | grep data_directory | sed "s/data_directory = '\(.*\)'.*/\1/") @@ -162,12 +163,10 @@ function initiate_upgrade { chown -R postgres:postgres "/tmp/pg_upgrade_bin/$PGVERSION" - if [[ "$OLD_PGVERSION" =~ 14* || "$OLD_PGVERSION" =~ 13* ]]; then - # Make latest libpq available to pg_upgrade - mkdir -p /usr/lib/postgresql/lib/aarch64 - if [ ! -L /usr/lib/postgresql/lib/aarch64/libpq.so.5 ]; then + # Make latest libpq available to pg_upgrade + mkdir -p /usr/lib/postgresql/lib/aarch64 + if [ ! -L /usr/lib/postgresql/lib/aarch64/libpq.so.5 ]; then ln -s "$PGLIBNEW/libpq.so.5" /usr/lib/postgresql/lib/aarch64/libpq.so.5 - fi fi # upgrade job outputs a log in the cwd; needs write permissions @@ -225,6 +224,7 @@ function initiate_upgrade { --new-datadir=${PGDATANEW} \ --jobs="${WORKERS}" \ --old-options='-c config_file=/etc/postgresql/postgresql.conf' \ + --old-options="-c shared_preload_libraries='${SHARED_PRELOAD_LIBRARIES}'" \ --new-options="-c data_directory=${PGDATANEW}" \ --new-options="-c shared_preload_libraries='${SHARED_PRELOAD_LIBRARIES}'" EOF From a5304af50f3b4e4e61f2fc90f43d3392233598d2 Mon Sep 17 00:00:00 2001 From: Paul Cioanca Date: Mon, 10 Apr 2023 23:04:57 +0300 Subject: [PATCH 3/3] chore: handle symlink for new pg binaries --- ansible/files/admin_api_scripts/pg_upgrade_initiate.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ansible/files/admin_api_scripts/pg_upgrade_initiate.sh b/ansible/files/admin_api_scripts/pg_upgrade_initiate.sh index f8bd3acf9..46297220c 100644 --- a/ansible/files/admin_api_scripts/pg_upgrade_initiate.sh +++ b/ansible/files/admin_api_scripts/pg_upgrade_initiate.sh @@ -242,6 +242,10 @@ EOF fi ln -s /var/lib/postgresql.bak/data /var/lib/postgresql/data fi + + if [ ! -L /var/lib/postgresql/data ]; then + ln -s /data/pgdata /var/lib/postgresql/data + fi echo "9. Stopping postgres; running pg_upgrade" systemctl stop postgresql