diff options
author | Jake Barnes | 2021-01-12 14:11:26 +1100 |
---|---|---|
committer | Jake Barnes | 2021-01-12 14:44:48 +1100 |
commit | e15399fc5af096fa785f5e6c625384bcc6bd8bed (patch) | |
tree | e043ded5ded56813264cd6aa0a6e59f2f3841606 /postgresql-check-db-dir | |
download | aur-e15399fc5af096fa785f5e6c625384bcc6bd8bed.tar.gz |
Initial commit with last official package files
Diffstat (limited to 'postgresql-check-db-dir')
-rw-r--r-- | postgresql-check-db-dir | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/postgresql-check-db-dir b/postgresql-check-db-dir new file mode 100644 index 000000000000..00d20b7b9176 --- /dev/null +++ b/postgresql-check-db-dir @@ -0,0 +1,49 @@ +#!/bin/sh + +# This script verifies that the postgresql data directory has been correctly +# initialized. We do not want to automatically initdb it, because that has +# a risk of catastrophic failure (ie, overwriting a valuable database) in +# corner cases, such as a remotely mounted database on a volume that's a +# bit slow to mount. But we can at least emit a message advising newbies +# what to do. + +PGDATA="$1" + +if [ -z "$PGDATA" ] +then + echo "Usage: $0 database-path" + exit 1 +fi + +# PGMAJORVERSION is major version +PGMAJORVERSION=12 +# PREVMAJORVERSION is the previous major version +PREVMAJORVERSION=11 + +# Check for the PGDATA structure +if [ -f "$PGDATA/PG_VERSION" ] && [ -d "$PGDATA/base" ] +then + # Check version of existing PGDATA + if [ x`cat "$PGDATA/PG_VERSION"` = x"$PGMAJORVERSION" ] + then + : A-OK + elif [ x`cat "$PGDATA/PG_VERSION"` = x"$PREVMAJORVERSION" ] + then + echo $"An old version of the database format was found." + echo $"See https://wiki.archlinux.org/index.php/PostgreSQL#Upgrading_PostgreSQL" + exit 1 + else + echo $"An old version of the database format was found." + echo $"You need to dump and reload before using PostgreSQL $PGMAJORVERSION." + echo $"See http://www.postgresql.org/docs/$PGMAJORVERSION/static/upgrading.html" + exit 1 + fi +else + # No existing PGDATA! Warn the user to initdb it. + echo $"\"$PGDATA\" is missing or empty. Use a command like" + echo $" su - postgres -c \"initdb --locale en_US.UTF-8 -D '$PGDATA'\"" + echo $"with relevant options, to initialize the database cluster." + exit 1 +fi + +exit 0 |