FIELD NOTES FOR SYSTEM MAINTAINERS

保守運用ノート

動いて当たり前のシステムを、ひとりで守る人のための実務メディア

無料ツール|印刷用チェックリスト

DBマイグレーションを本番へ当てる手順チェックリスト

**全部やる前提ではありません**。一人運用で毎回すべては重いので、**3段**に分けてあります。まずは必須の3点だけ。行数の多いテーブルや、消す・変える系の変更のときに追加分を足してください。

【必須】どんな小さな変更でも、この3点だけは

  • 対象テーブルの行数の桁を確かめたか(数千行か、数千万行か)
  • 検証環境で一度流して、実行時間を測った
  • 戻すSQLを書き、検証環境で実際に戻せることを確かめた

【行数が多い・消す/変えるを含むなら追加】

  • 変更がテーブルの作り替えを伴うかを、公式ドキュメントか ALGORITHM の明示で確かめたか
  • ロック待ちの上限時間lock_wait_timeout / lock_timeout)を設定して流すようにしたか
  • 消す・名前を変える変更を、「足す→両対応→切替→消す」に分けた
  • NOT NULL などの制約を、データを埋めたあとに付ける順にしたか
  • 対象テーブルのバックアップ(または退避テーブル)を、流す直前に取ったか
  • 1回のマイグレーションに変更を詰め込みすぎていないか(特にMySQL系)
  • 夜間バッチや定期処理と重ならない時間帯を選んだか
  • 中止する基準を数字で決めてあるか(時間・待ち件数)
  • 流したあと、件数の突き合わせと主要導線の動作確認をしたか
  • 実行日時・所要時間・結果を、変更管理台帳に1〜2行残したか

【理想・任意】余裕があるときに

  • データの移行を、数千行ずつに区切って流す形にしたか
  • 本番と同じ行数の検証用データを用意する手順を、使い回せる形で残したか
  • 今回気になった点を1行だけ書き、次のマイグレーション手順に反映したか

必須の3点なら、慣れれば30分ほどで回せます。全部に○が付かなくて大丈夫です。テーブルの大きさと、変更の種類に合わせて、必要な段まで足していけば十分です。

この内容は記事「DBマイグレーションを本番へ当てる手順|一人運用で戻せる形に」のチェックリストです。印刷してそのままお使いいただけます。 / 無料ツール一覧へ