章 21 · 部 4

Expand-Contract Pattern

A focused chapter on expand-contract pattern, with practical delivery concerns, trade-offs, and the operational questions behind CI/CD work.

21-1

なぜデータベースのカラムをすぐに削除してはいけないのか

本番環境でデータベーススキーマを削除する際に起こりうる障害と、Expand-Contractパターンを用いた安全な移行手順を解説します。

2 分
21-2

既存アプリケーションを停止せずに新しいデータベース構造を追加する

Expand-ContractパターンのExpandフェーズを使って、ダウンタイムなしでデータベーススキーマを安全に拡張する方法を解説。新しいカラムやテーブルを追加する際のベストプラクティスと注意点。

2 分
21-3

2つのアプリバージョンが1つのデータベースを共有する:デュアルライトとデュアルリードの移行

新旧アプリが共存するデータベース移行で必須のデュアルライト・デュアルリードパターンを解説。ダウンタイムなしでスキーマ変更を実現する実践的な手法。

2 分
21-4

新旧スキーマの狭間で:レガシーレコードのバックフィルと検証

本番稼働3年のテーブルに新カラムを追加した後、数百万行の既存レコードをどう扱うか。バッチ処理による安全なバックフィル手法と、データ整合性を担保する検証プロセスを解説。

2 分
21-5

データベースマイグレーションの切り替えフェーズ:クリーンな移行を実現する方法

Expand-Contractパターンにおけるカットオーバーフェーズの実践ガイド。段階的切り替えのメリット、隠れた依存関係の発見方法、安全な移行のためのチェックリストを解説します。

2 分
21-6

古いデータベースカラムを安全に削除できるタイミングとは?Expand-ContractパターンのContractフェーズ

Expand-Contractパターンの最終フェーズであるContract(収縮)フェーズでは、古いスキーマを安全に削除するための依存関係の検出方法、待機期間、実際の削除手順を解説します。

2 分
21-7

ダウンタイムなしでカラム名変更、テーブル分割、制約変更を実現する方法

本番環境でカラム名変更、テーブル分割、NOT NULL制約追加をダウンタイムなしで行うExpand-Contractパターンの実践ガイド。SQL例と段階的な移行手順を解説。

2 分