CakePHP 既存のデータベースに新しくカラムを追加する

既存のデータベースのテーブルに新しいカラムを追加したときのメモです

# cake/bin create migrations 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