PostgreSQLなどの既存のRDBMSはスキーマを持つ。スキーマがあることは良いことだが、このスキーマのライフサイクルはアプリケーションコードのライフサイクルと乖離しがちで、結果として以下のような問題が発生する。
- 特に自動化をしない場合はマイグレーションをデプロイとは別に行う必要が発生する。これにより、
- シンプルに作業が面倒。
- 承認フローが追加で必要になる。または、デプロイはレビューの管理下に置かれているのにマイグレーション側が適切に管理されないなどのミスマッチが起きる。
- マイグレーション忘れ、マイグレーションのリバート忘れのリスクがある。