Rollback failed deployments, restore previous versions, and handle deployment emergencies.
# List recent deployments
vercel list
# Promote a specific deployment to production
vercel promote <deployment-url>
# Or rollback to previous production deployment
vercel rollback
# Rollback last migration
pnpm -F @sgcarstrends/database db:rollback
# Rollback to specific migration
pnpm -F @sgcarstrends/database db:rollback --to 20240115_initial
# Restore from backup
pg_dump $DATABASE_URL > backup-pre-deploy.sql # Before deploy
psql $DATABASE_URL < backup-pre-deploy.sql # Restore if needed
# Revert specific commit
git revert <commit-hash>
git push origin main # Triggers Vercel redeploy
# Create rollback branch
git checkout -b rollback/v1.1.0
git reset --hard v1.1.0
git push origin rollback/v1.1.0
gh pr create --title "Rollback to v1.1.0" --body "Emergency rollback"
# Revalidate Next.js cache
curl -X POST "https://sgcarstrends.com/api/revalidate?tag=all&secret=$REVALIDATE_TOKEN"
# Clear Redis cache
redis-cli -h $REDIS_HOST FLUSHALL
curl -f https://sgcarstrends.com || echo "Web unhealthy"
psql $DATABASE_URL -c "SELECT 1" || echo "Database unreachable"
Pre-Rollback:
During:
Post:
Critical Bug:
vercel rollback
curl https://sgcarstrends.com/api/health
Database Migration Failure:
pnpm -F @sgcarstrends/database db:rollback
git revert HEAD
git push origin main
Rollback deployment not working:
# Force redeploy from known good commit
git checkout v1.1.0
vercel --prod
Database schema mismatch:
pnpm -F @sgcarstrends/database db:rollback
# Or restore backup: psql $DATABASE_URL < backup-pre-deploy.sql
monitoring skill for debugging issues