postgresql/test/run_migration_test
2018-11-06 12:48:32 +00:00

56 lines
1.4 KiB
Bash
Executable file

#! /bin/bash
set -e
. test/pg-test-lib.sh
ADMIN_PASSWORD=redhat
test $# -eq 2 || error "two args expected: $0 FROM TO"
cleanup()
{
set +e
set -- $container_from $container_to
if test $# -gt 0; then
docker stop "$@" >/dev/null
docker rm -f "$@"
fi
}
trap cleanup EXIT
from=$1
to=$2
image_from=$(get_image_id "$from")
image_to=$(get_image_id "$to")
assert_migration_succeeds ()
{
info "starting PostgreSQL server v$from"
container_from=$(docker run -e POSTGRESQL_ADMIN_PASSWORD="$ADMIN_PASSWORD" -d "$image_from")
wait_for_postgres "$container_from"
eval "CID=\$container_from data_${1}_create"
eval "CID=\$container_from data_${1}_check"
ip=$(container_ip "$container_from")
info "starting new PostgreSQL server v$to with migration options"
container_to=$(docker run \
-e POSTGRESQL_MIGRATION_REMOTE_HOST="$ip" \
-e POSTGRESQL_MIGRATION_ADMIN_PASSWORD="$ADMIN_PASSWORD" \
-d "$image_to")
# Prolong a waiting time here a bit since both dump and restore is done in
# uncertain environment (usually both is done on the same hardware).
wait_for_postgres "$container_to" 100
info "check that the migration passed"
eval "CID=\$container_to data_${1}_check"
docker stop "$container_from"
docker rm -f "$container_from"
docker stop "$container_to"
docker rm -f "$container_to"
container_from= container_to=
}
assert_migration_succeeds pagila