# 11-04 切戻し演習コード

- 目的: 11-02 が配置した配置サンドボックス（`../11-02-deploy-record/deploy_target/`）で、新版の配置 → 配置後の確認で不一致 → 旧版への切戻し → 切戻し後の確認、を実際に行い、コードの切戻しでは戻らない変更（新版の稼働中に増えたデータ）が残ることを確かめる。
- ファイル: `rollback.js`（旧版の退避・新版の配置・切戻し）、`approval_v0.1.1-broken.js`（「新版」という設定の説明用の失敗例。状態の比較に打ち間違いがあり、配置後の確認で不一致になる）、`run.js`（手順0〜6を順に実行）。退避した旧版は `releases/<版>/` に置く。
- 前提: 架空データ用。実際の外部サービスへの配置ではない。11-02 の配置が無ければ終了コード 1 で止まる。データ（`data/requests.json`）はコードの切戻しでは触らず、演習後に REQ-NEW-001 が残る（12-04 の復元とは別の作業）。
- 終了コード: 0＝切戻し後の確認が一致、1＝前提不備または切戻し後の確認が不一致、2＝新版で不一致が出なかった（想定外）。
- 必要なもの: Node.js（標準機能 `node:fs`・`node:path`・`node:crypto` のみ、追加パッケージなし）。実行記録は v24.18.0 で取得。

実行方法（順番どおりに）:

    cd 10-02-migration-plan && node run.js && cd ..        # 移行データを生成（10-02）
    cd 11-02-deploy-record && node run.js && cd ..         # 配置（11-02）
    cd 11-04-rollback-handover
    node run.js                                           # 切戻し演習

演習後に 11-02 の配置を元の状態（データ3件）に戻すには、11-02 の `node run.js` をもう一度実行する（配置先を作り直す）。

詳しい説明は記事「コードの切戻しとデータの復元を分けて書き、運用担当へ引き渡す」（11-04）を参照。
