まえがき
CakePHPのmigrationを利用してカラム位置の修正を行う手順を記載します。
バージョン
CakePHP4
手順
・Usersテーブルをmigrationで作成
bin\cake bake migration CreateUsers login_id:string
bin\cake migrations migrate
・Usersテーブル情報修正用のmigrationファイル生成
bin\cake bake migration ChangeUsers
20210801024646_ChangeUsers.php
$table = $this->table('users');
$table->addColumn('loginId', 'string', [
'after' => 'id'
]);
$table->update();
※上記のmigrationファイルでmigrate実行するとエラーが発生
bin\cake migrations migrate
PDOException: SQLSTATE[42S21]: Column already exists: 1060 Duplicate column name 'loginId' in C:\xampp\htdocs\cakephp_apps\todo\vendor\robmorgan\phinx\src\Phinx\Db\Adapter\PdoAdapter.php:194
20210801024646_ChangeUsers.php
$table = $this->table('users');
// addColumn -> changeColumnに変更
$table->changeColumn('loginId', 'string', [
'after' => 'id'
]);
$table->update();
bin\cake migrations migrate
今度は正しく反映されました!