みなさんこんにちは。@ryuzeeです。 アジャイルな開発を行って頻繁にデータベースのスキーマを変更したり頻繁にプロダクション環境にリリースしたりCIサーバで継続的にテストをしようとすると、データベース回りの変更をきちんと管理していくというのが非常に重要になります。 アマチュア的なアプローチだと毎回差分のsql文を書いて手でデータベースに食わせていくのですが、以下のような問題があります。 複数のsqlを書いたファイルがあったとして、データベースの状態は実行順序に依存する可能性があるSQLがRDBMSの仕様に依存する複数人で開発していると変更点を開発メンバーが認識して追随しているか判別しにくいCREATEやALTERコマンドは書いていても、もとに戻すことは想定していないことが多いので、前バージョンに戻しにくい似た話で、あるリリースの時点でデータベースがどういうスキーマだったのかを再現するのが
![Doctrine1でDBのマイグレーションを行う](https://cdn-ak-scissors.b.st-hatena.com/image/square/38c6f0bf31e08bc81c1993a3797714af9b7b3717/height=288;version=1;width=512/https%3A%2F%2Fwww.ryuzee.com%2Fimages%2Fbkimage.png)