# デプロイ Rollback 手順

各デプロイ対象ごとの切り戻し方法。

## Cloudflare Workers (`api/`)

### 直前バージョンへロールバック

```bash
cd parky/api
wrangler rollback --env dev          # dev-api.parky.co.jp
wrangler rollback --env prod   # api.parky.co.jp
```

`wrangler deployments list --env <env>` で履歴を確認できる。

### git ベースで戻す場合

1. `git revert <bad-sha>` → push
2. GitHub Actions が `deploy-api-*.yml` を実行して前バージョンに戻る

## Cloudflare Pages (`web/home`, `web/portal/admin`, `web/portal/owner`, `web/portal/marketing`, `mobileapp/prototype/web`)

CLI からの rollback はサポートされていない。Dashboard 操作:

1. https://dash.cloudflare.com/ → Pages → 対象プロジェクト
2. Deployments タブで戻したい成功デプロイを選択
3. 「Rollback to this deployment」

### git ベースで戻す場合

1. `git revert <bad-sha>` → push
2. 対応する `deploy-*.yml` が走って Pages を上書き

## Xserver 配下（akari-sensei 等、Parky 外だが参考）

1. `git revert <bad-sha>` → push
2. GitHub Actions の rsync ジョブが旧バージョンを再配置

## Supabase migration のロールバック

DB は一般に前方互換で設計している（`ALTER TABLE ... ADD COLUMN IF NOT EXISTS` 等）ため単純な revert は危険。

1. 問題のある migration を特定（`infra/supabase/migrations/`）
2. **DOWN migration を新規作成**（既存ファイルの削除は禁止）
3. `supabase db push` で適用

`supabase db reset` は dev でのみ使用可。本番では絶対に実行しない。

TODO:
- [ ] 各 env の最新デプロイ sha を記録する仕組み
- [ ] blue/green 化検討
