summaryrefslogtreecommitdiff
path: root/system/postgresql/postgresql.pre-upgrade
diff options
context:
space:
mode:
Diffstat (limited to 'system/postgresql/postgresql.pre-upgrade')
-rw-r--r--system/postgresql/postgresql.pre-upgrade32
1 files changed, 32 insertions, 0 deletions
diff --git a/system/postgresql/postgresql.pre-upgrade b/system/postgresql/postgresql.pre-upgrade
new file mode 100644
index 000000000..6116252c1
--- /dev/null
+++ b/system/postgresql/postgresql.pre-upgrade
@@ -0,0 +1,32 @@
+#!/bin/sh
+
+new="$1"
+old="$2"
+
+pgver=${new%.*}
+compare=$(apk version -t "$old" $pgver)
+
+# check if we upgrade from earlier than $pgver and if it is running
+if [ "$compare" != "<" ] || ! /etc/init.d/postgresql --quiet status; then
+ exit 0
+fi
+
+if [ -f /etc/conf.d/postgresql ]; then
+ . /etc/conf.d/postgresql
+fi
+
+cat <<EOF
+* You are upgrading to postgres $pgver wich is not compatible with the running
+* See: http://www.postgresql.org/docs/$pgver/static/upgrading.html
+*
+* The corresponding steps for Alpine Linux is:
+*
+* pg_dumpall -U ${PGUSER:-postgres} > dumpfile
+* /etc/init.d/postgresql stop
+* apk add -u postgresql
+* /etc/init.d/postgresql setup
+* /etc/init.d/postgresql start
+* psql -U ${PGUSER:-postgres} -f dumpfile
+*
+EOF
+exit 1