CakePHP4のマイグレーションでカラムを追加する方法を紹介します。
本記事ではCakePHP4.1.5を使用しています。
テーブルを作成する方法を以下の記事をご覧ください。
マイグレーションファイルの作成
bakeコマンドを使用して、マイグレーションファイルを作成します。
bin/cake bake migration AddLoginKeyToUsers login_key:string?
「AddLoginKeyToUsers」という部分がテーブルにカラムを追加するという記述になります。
カラムを追加する場合は「Add」と先頭に付け、その後にカラム名を記述します。
そして、「ToUsers」という形で、追加する対象のテーブル名を記述します。
対象のカラムは、「login_key」という文字列型のカラムをNull許容で追加する、という記述です。
作成されたマイグレーションにカラムを追加する位置を追加
作成されたマイグレーションファイルを修正することで、カラムの追加位置を指定することができます。
public function change()
{
$table = $this->table('users');
$table->addColumn('login_key', 'string', [
'default' => null,
'limit' => 255,
'null' => true,
'after' => 'token',
]);
$table->update();
}
‘after’ => ‘token’ という記述を追加しています。
本記事の例だと、「token」というカラムの後に追加されることになります。
これでマイグレーションを実行すると、カラムが追加されます。
bin/cake migrations migrate
実際にデータベースを見てみると、「token」というカラムの後に「login_key」というカラムが追加されているのが確認できました。
