test.sh
application/x-sh
#!/bin/sh
if [ -z "$OLDBIN" ]
then
echo "Set env OLDBIN."
fi
if [ -z "$NEWBIN" ]
then
echo "Set env NEWBIN."
fi
TRG=`pwd`/data
echo "Use output dir: $TRG"
do_upgrade()
{
OLD_FOO="old-foo.tmp"
OLD_BAR="old-bar.tmp"
OLD_BAZ="old-baz.tmp"
NEW_FOO="new-foo.tmp"
NEW_BAR="new-bar.tmp"
NEW_BAZ="new-baz.tmp"
$OLDBIN/bin/pg_ctl -D $DATA -l $DATA/logfile start
$OLDBIN/bin/psql -c "SELECT * FROM FOO" postgres > $OLD_FOO
$OLDBIN/bin/psql -c "SELECT * FROM BAR" postgres > $OLD_BAR
$OLDBIN/bin/psql -c "SELECT * FROM BAZ" postgres > $OLD_BAZ
$OLDBIN/bin/psql -c "CHECKPOINT" postgres
$OLDBIN/bin/pg_ctl -D $DATA stop
echo "=== --- >>>>>>>>>> $DATA controldata"
$OLDBIN/bin/pg_controldata -D $DATA | grep "Latest checkpoint"
$NEWBIN/bin/initdb --no-instructions -D $NEWDATA
$NEWBIN/bin/pg_upgrade \
-d $DATA -D $NEWDATA \
-b $OLDBIN/bin -B $NEWBIN/bin \
--copy
$NEWBIN/bin/pg_ctl -D $NEWDATA -l $NEWDATA/logfile start || exit 1
$NEWBIN/bin/psql -c "SELECT * FROM FOO" postgres > $NEW_FOO || exit 1
$NEWBIN/bin/psql -c "SELECT * FROM BAR" postgres > $NEW_BAR || exit 1
$NEWBIN/bin/psql -c "SELECT * FROM BAZ" postgres > $NEW_BAZ || exit 1
$NEWBIN/bin/psql -c "CHECKPOINT" postgres
$NEWBIN/bin/pg_ctl -D $NEWDATA stop
echo "=== +++ >>>>>>>>>> $NEWDATA controldata"
$NEWBIN/bin/pg_controldata -D $NEWDATA | grep "Latest checkpoint"
if ! diff --suppress-common-lines $OLD_FOO $NEW_FOO
then
echo ">>> FAIL - FOO <<<"
exit 1
fi
if ! diff --suppress-common-lines $OLD_BAR $NEW_BAR
then
echo ">>> FAIL - BAR <<<"
exit 1
fi
if ! diff --suppress-common-lines $OLD_BAZ $NEW_BAZ
then
echo ">>> FAIL - BAZ <<<"
exit 1
fi
rm $OLD_FOO $OLD_BAR $OLD_BAZ $NEW_FOO $NEW_BAR $NEW_BAZ
}
# simple
DATA=$TRG/simple
NEWDATA=$TRG/simple-new
rm -f -R $NEWDATA
do_upgrade
# offset wrap
DATA=$TRG/offset-wrap
NEWDATA=$TRG/offset-wrap-new
rm -f -R $NEWDATA
do_upgrade
# multi wrap
DATA=$TRG/multi-wrap
NEWDATA=$TRG/multi-wrap-new
rm -f -R $NEWDATA
do_upgrade
# offset and multi wrap
DATA=$TRG/offset-multi-wrap
NEWDATA=$TRG/offset-multi-wrap-new
rm -f -R $NEWDATA
do_upgrade
echo ">>> SUCCESS <<<"