スキーママイグレーション
データベース構造へのバージョン管理された段階的な変更。決まった順序で適用することで、全環境がまったく同じスキーマに行き着く。
マイグレーションは小さなスクリプトで、数行のALTER TABLEや新規テーブル、データの埋め直しなどからなる。ちょうど一度だけ実行され、適用済みかどうかをツールが判断できるよう専用のテーブルに記録される。マイグレーションの順序つきの連鎖は、スキーマがどう育ってきたかの唯一の根拠であり、空のデータベースに最初から再生すれば本番と同じ構造が再現されるはずである。
Flyway、Liquibase、Alembic、Railsの組み込みマイグレーションといったツールが、2000年代にこの手法を定式化した。難しいのは列の追加ではなく、ダウンタイムなしの変更である。変更は二段階(expand/contract)で展開し、新旧のコードが並行して動けるようにする。ロールアウトを取り消す場合に備え、各マイグレーションには戻す手段も用意しておくべきである。