既存のデータベースのテーブルに新しいカラムを追加したときのメモです
# bin/cake migrations create AddTaxDetailToSales
AddTaxDetailToSalesファイルを作成
<?php use Migrations\AbstractMigration; use Phinx\Db\Adapter\MysqlAdapter; class AddTaxDetailToSales extends AbstractMigration { public function up() { $this->table('sales') ->addColumn( 'consumption_tax_round_mode', "integer", [ 'comment' => '端数処理設定', 'default' => 1, 'length' => MysqlAdapter::INT_TINY, 'null' => false, 'after' => 'consumption_tax', ] ) ->addColumn( 'consumption_tax_rate', "decimal", [ 'comment' => '税率', 'default' => '0.100', 'null' => true, 'precision' => 4, 'scale' => 3, 'after' => 'consumption_tax_round_mode', ] ) ->addColumn( 'consumption_tax_class', 'integer', [ 'comment' => '課税区分', 'default' => '0', 'length' => MysqlAdapter::INT_TINY, 'null' => true, 'after' => 'consumption_tax_rate', ] ) ->update(); } public function down() { $this->table('sales') ->removeColumn('consumption_tax_round_mode') ->removeColumn('consumption_tax_rate') ->removeColumn('consumption_tax_class') ->update(); } }
作成したファイルに上記のようにupメソッドとdownメソッドを追加(デフォルトではchangeメソッドか書いてある).downはrollbackのとき使う。
既存テーブルにaddColumnでカラムを追加している
# bin/cake migrations migrate
これでカラムを追加できた。うまくいかなかった場合下記を実行する
# bin/cake migrations rollback