Database Schema Migration
A focused chapter on database schema migration, with practical delivery concerns, trade-offs, and the operational questions behind CI/CD work.
データベーススキーマ変更にコードと同じ規律が必要な理由
データベーススキーマ変更をコードと同じ規律で管理する「スキーママイグレーション」の重要性を解説。手動運用のリスク、マイグレーションスクリプトの書き方、CI/CDパイプラインへの組み込み方、実践的なチェックリストを紹介。
本番環境を壊さないデータベースマイグレーションスクリプトの書き方
新機能のコードはレビューもテストも済んだ。しかしデプロイの前に立ちはだかる壁、それがデータベース変更。本番を壊さないマイグレーションスクリプトの実践的パターンとチェックリストを解説。
データベーススキーマにもバージョン管理が必要な理由
アプリケーションコードのCI/CDパイプラインは整っているのに、データベーススキーマの変更が手動で行われ、デプロイ失敗を引き起こす問題を解決する。マイグレーションテーブルを使ったバージョンロックの仕組みと実践的な導入方法を解説。
追加型データベース変更:本番環境を壊さずに追加する方法
数千のアクティブユーザーがいる本番環境で、電話番号フィールドを追加する方法を解説。ALTER TABLEのリスクを回避し、安全にスキーマを拡張するための実践的ガイド。
データベースカラムの削除が本番環境を壊すとき:破壊的なスキーマ変更の管理
本番環境でカラム削除が引き起こす障害を防ぐための多段階マイグレーションパターン、ソフトデリート、制約の取り扱い、実践的なチェックリストを解説します。
インデックス追加でアプリケーションが停止する理由
インデックス追加が本番インシデントを引き起こす仕組みと、PostgreSQLのCONCURRENTLYやMySQLのALGORITHM=INPLACEなど、書き込みをブロックしない安全な移行手法を解説。外部キー制約のNOT VALID活用や移行計画の分離もカバー。
データベースマイグレーションが実行中のアプリケーションを壊すとき
ゼロダウンタイムデプロイにおけるデータベースマイグレーションの互換性問題を解説。後方互換性の原則、Expand-Contractパターン、実践的なチェックリストを紹介。
データベースマイグレーションに開発者のラップトップテストだけでは不十分な理由
開発環境で完璧に動くマイグレーションが本番で大惨事を引き起こす理由と、本番クローン、ドライラン、パフォーマンスベンチマークを含む実践的な検証手法を解説します。