マイグレーション作成方法

・コマンドで作成する
php app/console migrations:generate

・phpファイルを手動で作成する
次のファイルを src/Eccube/Resource/doctrine/migration/Version20180412171816.php の場所に作成します。

upメソッドの中にマイグレーションが実行された時に実行したい内容をSQL等で指定します。
downメソッドの中にマイグレーションが巻き戻された時に実行したい内容をSQL等で指定します。

例えばupメソッドは下記のようになります。

・SQL文を実行する例(おすすめ商品を登録)

 

・Entityを使用する例(ページの名前を変更)

 

マイグレーションの実行・巻き戻し

作成したマイグレーションを実行するには実行コマンドを打ちます。
upメソッドの内容が実行され、マイグレーションの実行が記録されます。

実行していないマイグレーションをすべて実行するには、
php app/console migrations:migrate

ファイルを指定して実行するには
php app/console migrations:execute 20180412171816 –up

ちなみにマイグレーションを巻き戻すには
php app/console migrations:execute 20180412171816 –down
この場合downメソッドの内容が実行され、マイグレーション「20180412171816」は未実行の状態になります。

マイグレーションファイルを使用するメリットは

マイグレーションによりデータベースの内容を変更することで、環境間のデータの差異をなくすことができます。

開発環境とステージング環境で設定を揃えたい時、ブロックの配置を何度も行いたくない場合に有効です。

Gitに登録して環境を揃えられるのでチーム開発では必須です。