fix(deployment): handle failed migrations automatically in docker-entrypoint
- Detect failed migrations in _prisma_migrations table - Auto resolve with 'prisma migrate resolve --rolled-back' - Fallback to 'prisma db push' if resolve fails - Ensures staging/prod can deploy even with migration history issues Fixes P3009 error on staging where 20260406032433_init migration failed Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
This commit is contained in:
1
QWEN.md
1
QWEN.md
@@ -233,3 +233,4 @@ Common issues and solutions:
|
||||
|
||||
## Qwen Added Memories
|
||||
- **GitHub Workflows**: Project ini memiliki workflow GitHub Action untuk deployment. User akan menangani workflow secara manual di GitHub.
|
||||
- **Auto Branch Creation**: Saat memperbaiki/mengerjakan sesuatu, otomatis buat branch baru dengan format: `fix/<deskripsi>-<YYYY-MM-DD>` atau `feat/<deskripsi>-<YYYY-MM-DD>` lalu push ke `deploy/stg`. Contoh: `fix/filestorage-path-2026-04-14`
|
||||
|
||||
@@ -3,11 +3,30 @@ set -e
|
||||
|
||||
echo "🔄 Running database migrations..."
|
||||
cd /app
|
||||
bunx prisma migrate deploy || {
|
||||
echo "❌ Migration failed!"
|
||||
exit 1
|
||||
}
|
||||
echo "✅ Migrations completed successfully"
|
||||
|
||||
# Check for failed migrations and resolve them first
|
||||
FAILED_MIGRATION=$(bunx prisma migrate status 2>&1 | grep -A 1 "failed" | grep -oP '\d{14}_\w+' | head -1 || true)
|
||||
|
||||
if [ ! -z "$FAILED_MIGRATION" ]; then
|
||||
echo "⚠️ Found failed migration: $FAILED_MIGRATION"
|
||||
echo "🔧 Attempting to resolve (mark as rolled back)..."
|
||||
bunx prisma migrate resolve --rolled-back "$FAILED_MIGRATION" || {
|
||||
echo "❌ Failed to resolve migration. Trying db push instead..."
|
||||
echo "📡 Pushing schema directly to database..."
|
||||
bunx prisma db push --accept-data-loss || {
|
||||
echo "❌ Schema push failed!"
|
||||
exit 1
|
||||
}
|
||||
}
|
||||
else
|
||||
echo "📡 Running standard migrations..."
|
||||
bunx prisma migrate deploy || {
|
||||
echo "❌ Migration failed!"
|
||||
exit 1
|
||||
}
|
||||
fi
|
||||
|
||||
echo "✅ Database schema updated successfully"
|
||||
|
||||
echo "🚀 Starting application..."
|
||||
exec bun start
|
||||
|
||||
Reference in New Issue
Block a user