fix: resolve failed migrations before deploying

This commit is contained in:
2026-02-27 16:26:31 -06:00
parent 508fa39835
commit 1326725995
2 changed files with 30 additions and 6 deletions
+23 -2
View File
@@ -1,7 +1,26 @@
#!/bin/sh
set -e
# Generate diff SQL between current migrations and the Prisma schema
# ---------------------------------------------------------------------------
# 1. Resolve any previously failed migrations so deploy can proceed.
# Prisma marks failed migrations in _prisma_migrations; we roll them back
# so the current run can re-apply them cleanly.
# ---------------------------------------------------------------------------
echo "[migrate] Checking for failed migrations..."
FAILED=$(bunx prisma migrate status 2>&1 || true)
# Extract failed migration names and mark them as rolled back
echo "$FAILED" | grep -oE '[0-9]{14}_[a-z_]+' | while read -r MIGRATION; do
# Only resolve if the status output says it failed
if echo "$FAILED" | grep -q "failed"; then
echo "[migrate] Resolving failed migration: $MIGRATION"
bunx prisma migrate resolve --rolled-back "$MIGRATION" 2>/dev/null || true
fi
done
# ---------------------------------------------------------------------------
# 2. Generate diff SQL between current migrations and the Prisma schema.
# ---------------------------------------------------------------------------
DIFF_SQL=$(bunx prisma migrate diff \
--from-migrations prisma/migrations \
--to-schema-datamodel prisma/schema.prisma \
@@ -18,6 +37,8 @@ else
echo "[migrate] Schema and migrations are in sync — no migration needed."
fi
# Deploy all pending migrations
# ---------------------------------------------------------------------------
# 3. Deploy all pending migrations.
# ---------------------------------------------------------------------------
echo "[migrate] Running prisma migrate deploy..."
bunx prisma migrate deploy