diff options
author | root <root@rshg054.dnsready.net> | 2012-09-17 00:03:15 +0000 |
---|---|---|
committer | root <root@rshg054.dnsready.net> | 2012-09-17 00:03:15 +0000 |
commit | d1d75c37c446dfbe9cbae503300e17f2973dbf44 (patch) | |
tree | b456fdc00f58cc15c7faf27ed12dfc9a0f8741b4 /testing/postgresql/postgresql-check-db-dir | |
parent | 50634781b5673a447953e357a63baa66515ec868 (diff) |
Mon Sep 17 00:03:15 UTC 2012
Diffstat (limited to 'testing/postgresql/postgresql-check-db-dir')
-rwxr-xr-x | testing/postgresql/postgresql-check-db-dir | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/testing/postgresql/postgresql-check-db-dir b/testing/postgresql/postgresql-check-db-dir new file mode 100755 index 000000000..542c82209 --- /dev/null +++ b/testing/postgresql/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=9.2 +# PREVMAJORVERSION is the previous major version, e.g., 8.4, for upgrades +PREVMAJORVERSION=9.1 + +# 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/9.2/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 |