#! /bin/bash

source dbname

function migrate_single() {
    DB="$1"
    CONNINFO="$2"
    MIGRATION="$3"

    if ! [[ "$CONNINFO" =~ "user=xiva_admin" ]]; then
        echo "wrong user specified in conninfo, should be xiva_admin"
        exit 1
    fi

    /usr/local/yandex/pgmigrate/pgmigrate.py -vvv \
        -d /sql/"$DB"/ \
        -t "$MIGRATION" \
        -c "$CONNINFO" \
        -a afterAll:/sql/"$DB"/code,afterAll:/sql/"$DB"/grants \
        migrate
}

DB="$1"
CONNINFO="$2"
MIGRATION="$3"

USAGE="usage: migrate <db> <conninfo>|all <migration number>"

if [[ -z "$DB" || -z "$CONNINFO" || -z "$MIGRATION" ]]; then
    echo "$USAGE"
    exit 1
fi

if [[ "$CONNINFO" != "all" ]]; then
    migrate_single "$DB" "$CONNINFO" "$MIGRATION"
    exit 0
fi

list --user xiva_admin "$DB" | while read c; do
    echo "=== `get_dbname "$c"` ==="
    migrate_single "$DB" "$c" "$MIGRATION"
done
