22trap "rm -f /tmp/$$" 0 1 2 3 15
33
44if [ "$#" -eq 0 ]
5- thenecho "Usage: $0 [-f inputfile] old_data_dir database " 1>&2
5+ thenecho "Usage: $0 [-f inputfile] old_data_dir" 1>&2
66exit 1
77fi
88
@@ -16,13 +16,12 @@ thenINPUT="$2"
1616elseINPUT=""
1717fi
1818
19- if [ "$#" -ne2 ]
20- thenecho "Usage: $0 [-finput_file ] old_data_dir database " 1>&2
19+ if [ "$#" -ne1 ]
20+ thenecho "Usage: $0 [-finputfile ] old_data_dir" 1>&2
2121exit 1
2222fi
2323
2424OLDDIR="$1"
25- DATABASE="$2"
2625
2726# check things
2827
@@ -36,8 +35,8 @@ thenecho "You must rename your old /data directory to /$OLDDIR and run initdb."
3635exit 1
3736fi
3837
39- if [ ! -d "./$OLDDIR/data/ base/$DATABASE " ]
40- thenecho "There is not database$DATABASE in ./$OLDDIR/data /base." 1>&2
38+ if [ ! -d "./$OLDDIR/base/template1 " ]
39+ thenecho "There is not databasetemplate1 in ./$OLDDIR/base." 1>&2
4140exit 1
4241fi
4342
5352
5453# do I need to create a database?
5554
56- if [ "$DATABASE" != "template1" ]
57- thenecho "Dropping and recreating database $DATABASE." 1>&2
58- destroydb "$DATABASE" >/dev/null 2>&1
59- createdb "$DATABASE"
60- fi
61-
62- # remove any COPY statements, preserve pgdump_oid setting from pg_dumpall
55+ # remove any COPY statements
56+ # we don't even need pgdump_oid because we are moving pg_variable
57+ # then shouldn't be in there anyway
6358
6459cat $INPUT | awk '{
65- if (toupper($0) ~ /^COPY / &&
66- toupper($0) !~ /^COPY[ ]*PGDUMP_OID/ )
60+ if (toupper($0) ~ /^COPY /)
6761while (getline $0 > 0 && $0 != "\\.")
6862;
6963elseprint $0;
7064}' >/tmp/$$
7165
7266#create empty tables/indexes
7367
74- psql "$DATABASE" <"/tmp/$$"
75- set -x
68+ psql "template1" <"/tmp/$$"
7669
7770for DIR in data/base/*
7871do
7972BASEDIR="`basename $DIR`"
8073if [ -d "$DIR" -a \
81- -d "$OLDDIR/$DIR" -a \
82- \( "$DATABASE" = "$BASEDIR" -o "$DATABASE" = "template1" \) ]
83- thenfor FILE in $OLDDIR/$DIR/*
74+ -d "$OLDDIR/base/$BASEDIR" -a \( "$BASEDIR" != "template1" \) ]
75+ thenfor FILE in $OLDDIR/base/$BASEDIR/*
8476do
8577BASEFILE="`basename $FILE`"
8678if [ `expr "$BASEFILE" : "pg_"` -ne 3 -a \
9183fi
9284done
9385
86+ mv $OLDDIR/pg_log data
87+ mv $OLDDIR/pg_variable data
88+
9489echo "You may removed the $OLDDIR directory with 'rm -r $OLDDIR'."