flyway check
This commit is contained in:
36
scripts/ci_flyway_validate_remote.sh
Executable file
36
scripts/ci_flyway_validate_remote.sh
Executable file
@@ -0,0 +1,36 @@
|
||||
#!/usr/bin/env bash
|
||||
# Flyway validate using migration files from repo root; JDBC from env (staging / CI DB).
|
||||
# Env: EMS_CI_FLYWAY_URL — if unset, skips (warn). Optional: EMS_CI_FLYWAY_USER, EMS_CI_FLYWAY_PASSWORD, FLYWAY_IMAGE
|
||||
set -euo pipefail
|
||||
|
||||
if [[ -z "${EMS_CI_FLYWAY_URL:-}" ]]; then
|
||||
echo "WARN: EMS_CI_FLYWAY_URL not set — skipping remote Flyway validate (set Gitea secret for CI)."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
ROOT="$(git rev-parse --show-toplevel 2>/dev/null || pwd)"
|
||||
cd "$ROOT"
|
||||
|
||||
IMG="${FLYWAY_IMAGE:-flyway/flyway:12}"
|
||||
|
||||
args=(
|
||||
run --rm
|
||||
-v "$ROOT/db/migration:/flyway/sql/migration"
|
||||
-v "$ROOT/db/routines:/flyway/sql/routines"
|
||||
-v "$ROOT/db/views:/flyway/sql/views"
|
||||
-e "FLYWAY_URL=${EMS_CI_FLYWAY_URL}"
|
||||
-e "FLYWAY_SCHEMAS=ems"
|
||||
-e "FLYWAY_LOCATIONS=filesystem:/flyway/sql/migration,filesystem:/flyway/sql/routines,filesystem:/flyway/sql/views"
|
||||
)
|
||||
|
||||
if [[ -n "${EMS_CI_FLYWAY_USER:-}" ]]; then
|
||||
args+=(-e "FLYWAY_USER=${EMS_CI_FLYWAY_USER}")
|
||||
fi
|
||||
if [[ -n "${EMS_CI_FLYWAY_PASSWORD:-}" ]]; then
|
||||
args+=(-e "FLYWAY_PASSWORD=${EMS_CI_FLYWAY_PASSWORD}")
|
||||
fi
|
||||
|
||||
args+=("$IMG" validate)
|
||||
|
||||
echo "Running Flyway validate against remote DB (schema ems)…"
|
||||
docker "${args[@]}"
|
||||
Reference in New Issue
Block a user