From 11b3e562234202faa70879ebbce08f501bd2a42c Mon Sep 17 00:00:00 2001 From: Bruce Momjian Date: Sun, 13 Jan 2002 04:55:44 +0000 Subject: [PATCH] Now tested on 7.2->7.2 migration; still disabled. Need 7.1 testing now. --- src/bin/pg_dump/pg_upgrade | 45 +++++++++++++++++++------------------- 1 file changed, 23 insertions(+), 22 deletions(-) diff --git a/src/bin/pg_dump/pg_upgrade b/src/bin/pg_dump/pg_upgrade index dcf93a6436..42696b06c3 100755 --- a/src/bin/pg_dump/pg_upgrade +++ b/src/bin/pg_dump/pg_upgrade @@ -3,7 +3,7 @@ # pg_upgrade: update a database without needing a full dump/reload cycle. # CAUTION: Read the manual page before trying to use this! -# $Header: /cvsroot/pgsql/src/bin/pg_dump/Attic/pg_upgrade,v 1.31 2002/01/13 01:22:27 momjian Exp $ +# $Header: /cvsroot/pgsql/src/bin/pg_dump/Attic/pg_upgrade,v 1.32 2002/01/13 04:55:44 momjian Exp $ # # NOTE: we must be sure to update the version-checking code a few dozen lines # below for each new PostgreSQL release. @@ -13,6 +13,16 @@ # Set this to "Y" to enable this program ENABLE="N" +if [ "$ENABLE" != "Y" ] +then + echo "Sorry, $0 cannot upgrade database +version $SRC_VERSION to $DST_VERSION." 1>&2 + echo "The on-disk structure of tables has changed." 1>&2 + echo "You will need to dump and restore using pg_dumpall." 1>&2 + exit 1 +fi + + # UPGRADE_VERSION is the expected old database version UPGRADE_VERSION="7.1" CUR_VERSION="7.2" @@ -52,7 +62,7 @@ OLDDIR="$INFODIR/data" make_dbobjoidmap() { psql -d template1 -At -c "SELECT datname FROM pg_database" | - grep -v '^template0$' | # template1 OK + grep -v '^template0$' | while read DB do QUERY="`echo \" SELECT relname, oid @@ -78,7 +88,8 @@ make_dbobjoidmap() make_dboidmap() { psql -d template1 -At -F' ' -c \ - 'SELECT datname, oid FROM pg_database;' + 'SELECT datname, oid FROM pg_database;' | + grep -v '^template0$' } @@ -149,24 +160,10 @@ $0 aborted." 1>&2 echo "However, your database is version $SRC_VERSION; $0 aborted." 1>&2 - exit 1 - fi - - # Check that input database is of a compatible version (anything with the same - # physical layout of user tables and indexes should be OK). I did not write - # something like "$SRC_VERSION -ge $UPGRADE_VERSION" because test(1) isn't bright - # enough to compare dotted version strings properly. Using a case statement - # looks uglier but is more flexible. - if [ "$ENABLE" != "Y" ] - then - echo "Sorry, $0 cannot upgrade database -version $SRC_VERSION to $DST_VERSION." 1>&2 - echo "The on-disk structure of tables has changed." 1>&2 echo "You will need to dump and restore using pg_dumpall." 1>&2 exit 1 fi - # Start server, if needed, so we can do some work. if ! pg_ctl status | head -1 | grep -q "is running" then pg_ctl -w start @@ -220,17 +217,18 @@ $0 aborted." 1>&2 if [ "$SRC_VERSION" = "7.1" ] then psql -d template1 -At -c "SELECT datname FROM pg_database" | - grep -v '^template0$' | # template1 OK + grep -v '^template0$' | while read DB - do - echo "\\connect $DB" + do + # We use awk as a portable way to output a backslash + awk 'BEGIN {print "\\connect '"$DB"'"}' psql -d "$DB" -At -c " SELECT relname FROM pg_class WHERE relkind = 'S';" | while read SEQUENCE do - VALUE=`psql -d template1 -At -c "SELECT last_value + VALUE=`psql -d "$DB" -At -c "SELECT last_value FROM \"$SEQUENCE\";"` echo "SELECT setval ('$SEQUENCE', $VALUE, true);" done @@ -263,7 +261,8 @@ $0 aborted." 1>&2 $0 aborted." 1>&2 exit 1 fi - echo "Plase 1 completed. Continue with the steps outlined in the $0 manual page." + echo "Plase 1 completed. +Continue with the steps outlined in the $0 manual page." exit 0 fi @@ -520,6 +519,8 @@ $0 aborted." 1>&2 fi fi +echo +echo echo "You may remove the old database files with 'rm -r pg_upgrade'." exit 0 -- 2.40.0