deployment-rollback について
Vercel のデプロイ、データベースのマイグレーション、Git の変更、キャッシュ無効化を扱うロールバックスキルです。ヘルスチェック、チェックリスト、トラブルシューティング手順も含み、既知の正常状態への復旧を支援します。
主な機能
- 01Vercel のダッシュボードまたは CLI でロールバック
- 02DB マイグレーションの取り消しやバックアップ復元
- 03Git で変更を戻すかリリースからブランチ作成
- 04Next.js と Redis のキャッシュを無効化
- 05ヘルスチェックと手順書による確認
活用シーン
- 01重大な不具合後に本番デプロイを戻す
- 02DB マイグレーション失敗から復旧
- 03ロールバック中にアプリと DB の状態を確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ motormetrics/ motormetrics --skill deployment-rollbackインストール後、Claude Code で/deployment-rollbackを入力して読み込まれたか確認します。
詳細
デプロイのロールバックスキル
Vercel でのクイックロールバック
Vercel ダッシュボードを使用する
- Vercel ダッシュボード → プロジェクト → デプロイに移動します
- 直前に正常に動作していたデプロイを見つけます
- 3 点メニュー →「本番環境に昇格」をクリックします
Vercel CLI を使用する
# 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
Git ベースのロールバック
# 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"
ロールバックのチェックリスト
ロールバック前:
- 問題と重大度を特定する
- 範囲(全体/一部)を判断する
- バックアップが利用可能か確認する
- チームに通知する
実行中:
- Vercel ダッシュボードまたは CLI からロールバックする
- 必要に応じてデータベースをロールバックする
- キャッシュをクリアする
- ヘルスチェックを確認する
- スモークテストを実行する
実行後:
- Vercel ダッシュボードでエラー率を監視する
- 機能が復旧したことを確認する
- 発生したことを記録する
- ポストモーテムを作成する
よくあるシナリオ
重大なバグ:
vercel rollback
curl https://sgcarstrends.com/api/health
データベースのマイグレーション失敗:
pnpm -F @sgcarstrends/database db:rollback
git revert HEAD
git push origin main
トラブルシューティング
デプロイのロールバックが機能しない:
# Force redeploy from known good commit
git checkout v1.1.0
vercel --prod
データベースのスキーマ不一致:
pnpm -F @sgcarstrends/database db:rollback
# Or restore backup: psql $DATABASE_URL < backup-pre-deploy.sql
ベストプラクティス
- 必ずバックアップする:大規模なデプロイの前にデータベースをバックアップします
- ロールバックをテストする:プレビューデプロイでロールバック手順を練習します
- 機能フラグ:ロールバックせずに機能をすぐ無効化できるように使用します
- 注意深く監視する:ロールバック中と実行後に Vercel の分析情報を確認します
- すべてを記録する:何が起きたのか、なぜ起きたのかを記録します
参考資料
- Vercel のロールバック:https://vercel.com/docs/deployments/rollbacks
- 問題のデバッグについては、
monitoringスキルを参照してください
コメント
Markdown 対応