From 7d4a774d4f5af26ab98d15cdb92fe75287f6d6e9 Mon Sep 17 00:00:00 2001 From: wangdl Date: Sat, 20 Jun 2026 13:46:35 +0800 Subject: [PATCH] fix(ci): add migration baseline to deploy job - deploy job now handles missing _prisma_migrations (same as current-integration) - Protects against MySQL restart between CI jobs clearing baseline Co-Authored-By: Claude --- .gitea/workflows/deploy.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index 264b6f3..850a820 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -271,6 +271,17 @@ jobs: - name: Apply database migrations run: | cd $WORKDIR + HAS_MIGS=$(npx prisma db execute --stdin <<< "SELECT COUNT(*) as cnt FROM _prisma_migrations" 2>/dev/null | grep -o '[0-9]*' | head -1 || echo "0") + if [ "$HAS_MIGS" = "0" ] || [ -z "$HAS_MIGS" ]; then + echo "[deploy] Baselining existing migrations..." + for m in prisma/migrations/*/; do + m_name=$(basename "$m") + if [ "$m_name" != "backfill_chat_scope.sql" ] && [ "$m_name" != "migration_lock.toml" ]; then + DATABASE_URL="${{ secrets.DATABASE_URL }}" npx prisma migrate resolve --applied "$m_name" 2>/dev/null || true + fi + done + echo "[deploy] Baseline complete." + fi DATABASE_URL="${{ secrets.DATABASE_URL }}" npx prisma migrate deploy env: DATABASE_URL: ${{ secrets.DATABASE_URL }}