やったこと

webサービスを作るときに考えたことを垂れ流します

【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

これで変更が反映されます。はい以上!