From 0c0147f12a441c68d917efa46a380a6ce6baf3e8 Mon Sep 17 00:00:00 2001 From: WangDL Date: Mon, 18 May 2026 15:22:54 +0800 Subject: [PATCH] fix: drop columns without IF EXISTS for MySQL 8.0 compat; delete all duplicate migration records Co-Authored-By: Claude Opus 4.7 --- .gitea/workflows/deploy.yml | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index 2513d69..f27249d 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -58,15 +58,17 @@ jobs: $MYSQL_EXEC -e "SELECT COUNT(*) AS cnt FROM information_schema.COLUMNS WHERE TABLE_SCHEMA='zhixi' AND TABLE_NAME='UploadedFile' AND COLUMN_NAME='objectKey';" 2>/dev/null || true # Drop partially-created objects + # NOTE: do NOT use IF EXISTS on DROP COLUMN (requires MySQL 8.0.29+) + # Just try to drop — if the column doesn't exist, the error is suppressed $MYSQL_EXEC -e "DROP TABLE IF EXISTS AiUsageLog;" 2>/dev/null || true $MYSQL_EXEC -e "DROP TABLE IF EXISTS WaitlistEntry;" 2>/dev/null || true - $MYSQL_EXEC -e "ALTER TABLE UploadedFile DROP COLUMN IF EXISTS objectKey;" 2>/dev/null || true - $MYSQL_EXEC -e "ALTER TABLE UploadedFile DROP COLUMN IF EXISTS bucket;" 2>/dev/null || true - $MYSQL_EXEC -e "DROP INDEX UploadedFile_objectKey_idx ON UploadedFile;" 2>/dev/null || true + $MYSQL_EXEC -e "ALTER TABLE UploadedFile DROP COLUMN objectKey;" 2>/dev/null || true + $MYSQL_EXEC -e "ALTER TABLE UploadedFile DROP COLUMN bucket;" 2>/dev/null || true + $MYSQL_EXEC -e "ALTER TABLE UploadedFile DROP INDEX UploadedFile_objectKey_idx;" 2>/dev/null || true - # Remove the failed migration record + # Remove ALL entries for this failed migration (retry loop creates duplicates) $MYSQL_EXEC -e "DELETE FROM _prisma_migrations WHERE migration_name = '$FAILED';" - echo "[deploy] Deleted failed migration record: $FAILED" + echo "[deploy] Deleted all records for migration: $FAILED" else echo "[deploy] No failed migrations found" fi