fix: drop columns without IF EXISTS for MySQL 8.0 compat; delete all duplicate migration records
All checks were successful
Deploy Website / build-and-deploy (push) Successful in 22s

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
WangDL 2026-05-18 15:22:54 +08:00
parent 883efc0593
commit 0c0147f12a

View File

@ -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