#!/bin/bash set -e source .configuration.sh function add-version() { psql $PSQL_OPTS -c "update database_versions set is_active = false where is_active = true" $DB_NAME psql $PSQL_OPTS -c "insert into database_versions (version, is_active) values ('$1', TRUE)" $DB_NAME } current_version=$(psql $PSQL_OPTS -Atc "select version from database_versions where is_active = true" $DB_NAME) for f in $(ls -1 migrations/*.sql | sort); do filev=$(basename $f .sql) if [[ $filev > $current_version ]]; then psql $PSQL_OPTS -vON_ERROR_STOP= -1f $f $DB_NAME # No need to check return code because of the 'set -e' add-version $filev fi done