#!/usr/bin/env bash set -e USAGE="Usage: migrate " # http://www.postgresql.org/docs/9.5/static/libpq-envars.html export PGDATABASE=${PGDATABASE:-meetspace} cd `dirname $0`/../migrations if [[ $(psql -A -t -c "SELECT * FROM information_schema.tables WHERE table_name='migrations'") ]] then versions=`psql -A -t -c "SELECT version FROM migrations;" || true` fi case $1 in up) upversions=`comm -23 <(ls *.up.sql | xargs basename -s .up.sql) <(echo "$versions")` for v in $upversions; do echo $v PAGER= psql --set=ON_ERROR_STOP=true -a -f $v.up.sql done ;; down) downversions=`comm -12 <(ls *.down.sql | xargs basename -s .down.sql) <(echo "$versions") | sort -r` for v in $downversions; do echo $v PAGER= psql --set=ON_ERROR_STOP=true -a -f $v.down.sql done ;; new) date=`date +%Y%m%d%H%M%S` name=$date-$2 echo $name.up.sql tee $name.up.sql <