Skip to content
Latchkey

Expand-Contract マイグレーションとは?

expand-contract マイグレーションは、parallel change とも呼ばれ、schema の変更を、古いコードと新しいコードが共存して動作し続ける各フェーズに分割します。expand フェーズでは何も削除せずに新しいカラムやテーブルを追加し、アプリケーションコードをそれらを使うよう更新し、データを backfill し、それが済んで初めて contract フェーズで古い構造を削除します。各フェーズは独立して deploy 可能かつ可逆です。

なぜ重要か

schema とそれを使うコードを一度の deploy で変更すると、リスクの高い lockstep なリリースを強いられます。先に expand することで古いコードと新しいコードが共存でき、各ステップで deploy と rollback が安全に保たれます。

関連ガイド