21 lines
572 B
Bash
21 lines
572 B
Bash
#!/bin/sh
|
|
set -eu
|
|
|
|
# migra doesn't shutdown gracefully, so kill it ourselves
|
|
trap 'kill -9 %1' TERM
|
|
|
|
run_migra() {
|
|
# additional flags for diffing extensions
|
|
[ "$schema" = "extensions" ] && set -- --create-extensions-only --ignore-extension-versions "$@"
|
|
migra --with-privileges --unsafe --schema="$schema" "$@"
|
|
}
|
|
|
|
# accepts command line args as a list of schema to generate
|
|
for schema in "$@"; do
|
|
# migra exits 2 when differences are found
|
|
run_migra "$SOURCE" "$TARGET" || status=$?
|
|
if [ ${status:-2} -ne 2 ]; then
|
|
exit $status
|
|
fi
|
|
done
|