]> granicus.if.org Git - postgresql/commitdiff
Now tested on 7.2->7.2 migration; still disabled. Need 7.1 testing now.
authorBruce Momjian <bruce@momjian.us>
Sun, 13 Jan 2002 04:55:44 +0000 (04:55 +0000)
committerBruce Momjian <bruce@momjian.us>
Sun, 13 Jan 2002 04:55:44 +0000 (04:55 +0000)
src/bin/pg_dump/pg_upgrade

index dcf93a64360719b7998fe8fb551c53d1d3cab906..42696b06c355f51f2ca1e042e5049c5fdee0d84f 100755 (executable)
@@ -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.
 # 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