From 96c7ab5e54b2dc4a574a1ccca05177f166ba9e80 Mon Sep 17 00:00:00 2001 From: kjh2064 Date: Thu, 2 Jul 2026 14:23:01 +0900 Subject: [PATCH] fix(ci): skip applied migrations in preflight validation --- scripts/validate_migrations.sh | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/scripts/validate_migrations.sh b/scripts/validate_migrations.sh index 775bd0a..99b24c9 100644 --- a/scripts/validate_migrations.sh +++ b/scripts/validate_migrations.sh @@ -47,10 +47,24 @@ if ! command -v psql >/dev/null 2>&1; then exit 1 fi +mapfile -t executed_versions < <( + psql "$DB_CONNECTION_STRING" -Atc "SELECT version FROM schema_migrations ORDER BY version;" 2>/dev/null || true +) + +declare -A executed_map=() +for version in "${executed_versions[@]}"; do + if [ -n "$version" ]; then + executed_map["$version"]=1 + fi +done + for file in "${files[@]}"; do name="$(basename "$file")" version="${name#V}" version="${version%%__*}" + if [ -n "${executed_map[$version]:-}" ]; then + continue + fi echo "Dry-run migration V$version: $name" psql "$DB_CONNECTION_STRING" -v ON_ERROR_STOP=1 <