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
|
## Qwen Added Memories
|
||||||
- **GitHub Workflows**: Project ini memiliki workflow GitHub Action untuk deployment. User akan menangani workflow secara manual di GitHub.
|
- **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..."
|
echo "🔄 Running database migrations..."
|
||||||
cd /app
|
cd /app
|
||||||
|
|
||||||
|
# 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 || {
|
bunx prisma migrate deploy || {
|
||||||
echo "❌ Migration failed!"
|
echo "❌ Migration failed!"
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
echo "✅ Migrations completed successfully"
|
fi
|
||||||
|
|
||||||
|
echo "✅ Database schema updated successfully"
|
||||||
|
|
||||||
echo "🚀 Starting application..."
|
echo "🚀 Starting application..."
|
||||||
exec bun start
|
exec bun start
|
||||||
|
|||||||
Reference in New Issue
Block a user