不具合の前のコードへ戻しても、その間に作成・変更された外部データまで元に戻るとは限りません。復旧を考えるときは、戻す対象を分けて整理します。本記事は計画の提案で、実際に復元できたという報告ではありません。
戻す対象を分ける
プログラムの版、動作に使う設定、保存されたデータ、公開先の状態はそれぞれ違います。コードの履歴に認証情報や外部の記録まで入っているとは限りません。何が履歴にあり、何が別管理かを確認します。
復旧計画の型
| 対象 | 確認すること |
|---|---|
| コード | 戻す版と現在の差分 |
| 設定 | 対応する値や環境 |
| データ | 変更された範囲と保存元 |
| 公開状態 | 残る記事やファイル |
| 再実行 | 重複や二重処理の可能性 |
| 確認方法 | 復旧後の完成条件 |
これは架空の型です。バックアップが存在するだけで、必要な範囲を復元できると断定しません。保存した時点と復元方法を確認します。
操作を始める前
影響する範囲と、追加で変更してよい対象を確認します。削除や上書きが必要な場合は、許可と現在の記録を確保します。問題を隠すために、証拠となるログや原本を先に消さないようにします。
計画を書く例
コードは[確認済みの版]へ戻す候補です。外部データの変更は別途確認し、[対象]を残すか戻すか判断します。再実行前に[識別方法]で既存結果を照合します。復旧後は[確認条件]を検証します。
未確認の項目は未確認と書きます。「元に戻す」という一言で、すべてを実行したことにしません。
復旧後に見ること
処理が動くかだけでなく、必要なデータが残り、不要な重複がないかを確認します。旧版が新しいデータ形式を扱えるかも別に確認します。実施した操作と残る制約を報告します。
公開処理を戻す場合の例
架空の例として、新しい公開処理が記事を作成した後、コードだけを前の版へ戻しても、その記事は公開先に残るかもしれません。残す記事、直す記事、取り下げる必要がある記事を別に確認します。再実行で同じ記事を作らないかも調べ、コードの変更と公開データの扱いを一つの操作として扱いません。
関連する確認
既存機能を守る条件と実際の公開状態の確認も、復旧の完成条件を考える参考になります。

コメント