【CakePHP3】マイグレーション機能でカラムの定義を変更する!
CakePHP3のMigrations機能でカラムの定義を変更する方法です。
①マイグレーションファイルを作る
以下のようにbakeコマンドを打って「ChangeComment」などというマイグレーションファイルを作ります。
./bin/cake bake migration ChangeComment
コマンド打つと「20170320094048_ChangeComment.php」などといったマイグレーションファイルが作成されます(まだ中は空っぽです)
②マイグレーションファイルに変更内容を書く
マイグレーションファイルの中にカラムの定義を変更する命令を書きます。
以下の例では、「comments」というテーブルの「twitter_id」というカラムの定義を変更しています。
「biginteger」というデータ型に変更して、デフォルト値をnullに変更して、null値の入力を「有り」に変更しています。
public function change() { $table = $this->table('comments'); $table->changeColumn('twitter_id', 'biginteger', [ 'default' => null, 'null' => true, ]); $table->update(); }
③マイグレーション実行
上記のマイグレーションを、普通にコマンドを叩いて実行します。
./bin/cake migrations migrate
これで変更が反映されます。はい以上!