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

・コマンドで作成する
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に登録して環境を揃えられるのでチーム開発では必須です。

関連するカスタマイズ

商品種別の名称を変更する方法 EC-CUBEで良くわからないと言われる項目の1つに商品種別があります。 商品種別の価値は配送方法を分離するために存在するのですが、カートや複数配送のカスタマイズと絡むと非常に難しく、大抵のサイトでは商品種別は1つだけしか使用しないことが無難だと思います。 もし使用したい場合も「商品...
MIgrationファイルのSQLでプレースホルダを使用する... 突然ですが、皆さんは開発の際にMigrationファイル作成していますでしょうか? DBをphpMyAdminなどで直接編集していますでしょうか? 弊社のオススメは要件上重要な設定の変更やデータの挿入はMigrationファイルで行うことです。その理由としてはショップ設定やブロック配置の統一です。...
Twig内で文字列の一部分を切り出す方法 Slice使用... twigテンプレート内で文字列の一部を切り出したい時があります。 そんな時はsliceフィルタを使用してtwig内だけで切り出しを実行することが可能です。 2文字目以降を切り出す(1文字目を削除) sliceフィルタの第1引数は開始位置です。 sliceフィルタにはシンタックスシ...
基本税率を切り捨て、切り上げ、四捨五入に変更... 開発メンバー全員のルールを揃えておくことが重要です。 dtb_tax_ruleテーブルのcalc_ruleの設定値は次の表の通りです。 calc_rule 方式 1 四捨五入 2 切り捨て 3 切り上げ これをマイグレーションで...