DoctrineMigrationsBundleの使い方この記事では、DoctrineMigrationsBundleのセットアップ手順と、マイグレーションの作成・適用手順についてまとめてみました。Symfonyは、デフォルトではマイグレーション機構が含まれていません。--forceコマンドを使ってデータベースにスキーマを反映することができますが、デフォルトではProduction環境で利用できないためマイグレーションを導入したほうが無難です。doctrine/DoctrineMigrationsBundle)を導入します。以上で、開発環境でマイグレーションを実装することができるようになります。マイグレーションの作成マイグレーションは、doctrine:migrations:generateでマイグレーションを生成し、スクラッチからマイグレーションを実装することもできますが、ここではエンティティクラスの作成・変更した後に、現在のデータベースとの差分からマイグレーションを自動生成する手順を説明します。この場合、開発の流れは以下のようになります。必要に応じてマイグレーションを修正マイグレーションを適用エンティティクラスの作成・変更タイトルとコンテンツのみをフィールドに持つブログ投稿のエンティティをサンプルとして作成してみます。:).マイグレーションの作成ブログ投稿エンティティを作成した後、doctrine:migrations:diffを実行するとブログ投稿を保存するテーブルを作成するマイグレーションを自動で生成してくれます。}}設定dir_nameに指定されたディレクトリが作成され、そこにマイグレーションファイルが生成されてます。データベースを確認するとpostテーブルと適用されたマイグレーションを記録するmigration_versionsテーブルが作られています。sec)補足:migration_versionsテーブルは、doctrine:migrations:status初回実行時にも自動で作成されます。自動生成されたマイグレーションに不足がある場合、直接修正します。DoctrineMigrationsBundleは、インデックスや、参照カラムの外部キー制約などもきっちり定義してくれるので、基本的には修正することはあまり無さそうです。マイグレーションの適用doctrine:migrations:migrateコマンドで、マイグレーションを適用します。queriesdoctrine:migrations:statusコマンドで現在のステータスを確認できます。0マイグレーションのバージョンをdownする場合は、以下のようにdoctrine:migrations:executeコマンドに、現在のバージョンをYYYYMMDDHHmmss形式で指定し、--downオプションを付けて実行します。