mirror of
https://github.com/opf/openproject-deploy.git
synced 2026-02-14 16:59:51 +00:00
33 lines
1.2 KiB
Bash
Executable File
33 lines
1.2 KiB
Bash
Executable File
#!/bin/bash
|
|
set -e
|
|
set -o pipefail
|
|
|
|
CURRENT_PGVERSION="$(cat $PGDATA/PG_VERSION)"
|
|
NEW_PGVERSION="13"
|
|
PGWORKDIR=${PGWORKDIR:=/var/lib/postgresql/work}
|
|
|
|
if [ ! "$CURRENT_PGVERSION" -lt "$NEW_PGVERSION" ]; then
|
|
echo "Current PG version is higher or equal to the PG version to be installed ($CURRENT_PGVERSION > $NEW_PGVERSION). Ignoring."
|
|
exit 0
|
|
fi
|
|
|
|
export PGBINOLD="/usr/lib/postgresql/$CURRENT_PGVERSION/bin"
|
|
export PGBINNEW="/usr/lib/postgresql/$NEW_PGVERSION/bin"
|
|
export PGDATAOLD="$PGDATA"
|
|
export PGDATANEW="$PGWORKDIR/datanew"
|
|
|
|
rm -rf "$PGWORKDIR" && mkdir -p "$PGWORKDIR" "$PGDATANEW"
|
|
chown -R postgres.postgres "$PGDATA" "$PGWORKDIR"
|
|
cd "$PGWORKDIR"
|
|
# initialize new db
|
|
su -m postgres -c "$PGBINNEW/initdb --pgdata=$PGDATANEW --encoding=unicode --auth=trust"
|
|
echo "Performing a dry-run migration to PostgreSQL $NEW_PGVERSION..."
|
|
su -m postgres -c "$PGBINNEW/pg_upgrade -c"
|
|
echo "Performing the real migration to PostgreSQL $NEW_VERSION..."
|
|
su -m postgres -c "$PGBINNEW/pg_upgrade"
|
|
su -m postgres -c "rm -rf $PGDATAOLD/* && mv $PGDATANEW/* $PGDATAOLD/"
|
|
# as per docker hub documentation
|
|
su -m postgres -c "echo \"listen_addresses = '*'\" >> $PGDATAOLD/postgresql.conf"
|
|
su -m postgres -c "echo \"host all all all md5\" >> $PGDATAOLD/pg_hba.conf"
|
|
echo "DONE"
|