CLAUDE LABEN
FORK — Claude Code 2.1.212で/forkの挙動が変わりました。会話を新しいバックグラウンドセッションへ複製し、作業を続けたまま並走できます。従来のセッション内サブエージェントは/subtaskに移りましたLIMITS — WebSearchの呼び出しがセッション単位で既定200回に制限されました。サブエージェントの起動も既定200回が上限で、暴走した検索・委譲のループを止められますMCPBG — 2分を超えるMCPツール呼び出しは自動的にバックグラウンドへ移り、セッションが固まらなくなりました。しきい値はCLAUDE_CODE_MCP_AUTO_BACKGROUND_MSで調整できますPLANFIX — プランモードがtouchやrmといったファイルを変更するBashコマンドを、許可プロンプトもcanUseToolコールバックも通さずに実行してしまう不具合が修正されましたSONNET5 — Claude Sonnet 5は導入価格として入力100万トークンあたり2ドル、出力10ドルで提供中です。8月31日を過ぎると3ドルと15ドルに戻りますIPO — Anthropicが早ければ10月の株式公開を視野に、引受銀行が投資家との面談を組み始めたと報じられていますFORK — Claude Code 2.1.212で/forkの挙動が変わりました。会話を新しいバックグラウンドセッションへ複製し、作業を続けたまま並走できます。従来のセッション内サブエージェントは/subtaskに移りましたLIMITS — WebSearchの呼び出しがセッション単位で既定200回に制限されました。サブエージェントの起動も既定200回が上限で、暴走した検索・委譲のループを止められますMCPBG — 2分を超えるMCPツール呼び出しは自動的にバックグラウンドへ移り、セッションが固まらなくなりました。しきい値はCLAUDE_CODE_MCP_AUTO_BACKGROUND_MSで調整できますPLANFIX — プランモードがtouchやrmといったファイルを変更するBashコマンドを、許可プロンプトもcanUseToolコールバックも通さずに実行してしまう不具合が修正されましたSONNET5 — Claude Sonnet 5は導入価格として入力100万トークンあたり2ドル、出力10ドルで提供中です。8月31日を過ぎると3ドルと15ドルに戻りますIPO — Anthropicが早ければ10月の株式公開を視野に、引受銀行が投資家との面談を組み始めたと報じられています
記事一覧/Claude Code
Claude Code/2026-05-02上級

Claude Code でゼロダウンタイム DB マイグレーションを設計する本番運用ガイド

Claude Code でゼロダウンタイム DB マイグレーションを設計する本番運用ガイド。Expand-Contract、NOT NULL 追加、カラムリネーム、バックフィル、サブエージェントレビューまで、本番で詰まらない手順を解説します。

claude-code129databasemigration7production87postgresqladvanced9

プレミアム記事

DB マイグレーションは、平常時は地味な作業ですが、本番で失敗すると一瞬でサービス全停止に直結します。私自身、深夜のデプロイで ALTER TABLE ... ADD COLUMN ... NOT NULL を流して、PostgreSQL のテーブルロックで API がタイムアウトを連発したことがあります。アプリ側のリトライがロック待ちを増幅させて、復旧まで30分。あの夜の冷や汗は今でも忘れられません。

問題は、マイグレーションの危険性が「コードを読んでも見えにくい」ことです。1行の SQL が裏で全行スキャンを走らせるか、即時で済むかは、データベースの実装に深く依存します。Claude Code は、こうした「見えない地雷」をマイグレーションファイルから検出し、安全な手順に書き換える作業との相性が抜群です。本記事は、ゼロダウンタイムでスキーマを進化させるための設計パターンを、Claude Code の使い方とセットで体系化したものです。

なぜマイグレーションでサービスが落ちるのか

サービスが落ちるマイグレーション失敗は、私の観測範囲では3つのパターンに分類できます。第一に、長時間の排他ロックを取る DDL を本番に流すパターン。ALTER TABLE ... ADD COLUMN ... NOT NULL DEFAULT 'foo' のような操作は、PostgreSQL 11 以降では即時化されますが、それ以前のバージョンや一部のクラウドサービスでは全行書き換えが走り、テーブルが分単位でロックされます。

第二に、アプリケーションコードと DB スキーマのデプロイ順序を間違えるパターン。古いアプリがまだ動いている状態で新しいスキーマに切り替えると、古いコードが「存在しないカラム」を参照しようとして 500 エラーが出続けます。逆もまた然りで、新しいコードが古いスキーマで動こうとして失敗します。

第三に、ロールバックを設計しないままマイグレーションを進めるパターン。DROP COLUMN を流した直後に問題が発覚しても、データは戻りません。バックアップから復元するしかなく、その間の更新分は消えます。

これら3つを根本から解決するのが、Expand-Contract(拡張-縮約)パターンです。

ゼロダウンタイムを支える3つの原則

Expand-Contract パターンは、次の3つの原則を守ることでゼロダウンタイムを実現します。

第一の原則は「常に古いコードと新しいコードの両方が動く状態を経由する」ことです。新旧スキーマの両方をアプリケーションが扱える期間を作り、その間にデプロイを段階的に進めます。

第二の原則は「DDL は短時間で終わるものだけを直接適用する」ことです。長時間ロックする操作は、pg_repackgh-ost のようなオンライン変更ツールを使うか、複数の小さな DDL に分解します。

第三の原則は「すべてのマイグレーションが前進方向と後進方向の両方を持つ」ことです。up だけでなく down を必ず書き、しかも down で実データが失われない設計にします。

これらの原則を Claude Code に伝える CLAUDE.md のテンプレートが次のものです。プロジェクトのルートに置いておくと、マイグレーション関連の指示で自動的に守ってくれます。

# DB マイグレーション運用ルール
 
## 絶対遵守
- 本番で実行する DDL は、ロック時間が 1 秒未満で終わるもののみ
- カラム追加は NULL 許容で追加し、後続のマイグレーションで NOT NULL 化
- カラム削除は「コード参照を全て除去 → デプロイ → DROP COLUMN」の3段階
- リネームは新カラム追加 → 二重書き → 切り替え → 旧カラム削除の4段階
- すべてのマイグレーションに down (ロールバック) を実装
 
## レビュー必須項目
- 影響行数の見積もり(EXPLAIN または COUNT で確認)
- ロック時間の予測(テストDBで実測)
- アプリケーションコードとの互換性(古いコードが動き続けるか)

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
本番でマイグレーション中にサービスが止まって冷や汗をかいた経験のある人が、Expand-Contract パターンで止めずに済む手順を今日から実装できるようになります
NOT NULL 追加・カラムリネーム・型変更といった「危険な変更」を、5段階デプロイに分解して安全に流す具体的なコードと SQL を手に入れられます
Claude Code のサブエージェントにレビュアー役を任せて、マイグレーションの落とし穴を投入前に検出する自動化パターンを習得できます
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Claude Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

Claude Code2026-07-03
5分の沈黙で誰かがやり直しを始める — streaming idle watchdog 既定化で数え直すリトライの責務
Claude Code の streaming idle watchdog 既定化で、実行スタックに再試行する層がもう一枚増えました。SDK・自前ラッパー・watchdog・スケジューラの4層を棚卸しし、最悪ケースの試行回数を掛け算で見積もり、リトライ責務を一層に畳む設計をまとめます。
Claude Code2026-04-30
Claude Code Skills を組み合わせる設計術 — 単一スキルでは届かない自動化を作る
Claude Code の Skills を1つずつ作るところから一歩進み、複数スキルを連携させて自動化を組む設計手法を解説します。Pipeline・条件分岐・メタスキルの3パターンとよくある落とし穴を実装例付きで詳述します。
Claude Code2026-04-29
Claude Code の実行を OpenTelemetry で観測する — エージェント処理を本番品質で可視化する設計ガイド
Claude Code のエージェント処理を OpenTelemetry でトレースする本番設計ガイド。フック連携・ツール呼び出し計測・MCP 通信・コスト属性・サンプリングまで、実運用で詰まらないパターンを解説します。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →