環境
PHP 7.2.21
CakePHP 2.10.18
MySQL 5.7.27
やりたいこと
カラム名変更マイグレが見つからなかったのでメモ
やったこと
❌Migrations.migration generateの自動生成だとこれができたが
これだとカラム削除&追加を行うマイグレなので存在する値が消去されてしまう
app/Config/migration/xxxxxxxxx_RenameColumnHogeToFuga.php
/**
* Actions to be performed
*
* @var array $migration
*/
public $migration = array(
'up' => array(
'create_field' => array(
'test_table' => array(
'fuga' => array('type' => 'integer', 'null' => false, 'default' => null, 'unsigned' => false, 'after' => 'item_name'),
),
),
'drop_field' => array(
'test_table' => array('hoge'),
),
),
'down' => array(
'drop_field' => array(
'test_table' => array('fuga'),
),
'create_field' => array(
'test_table' => array(
'hoge' => array('type' => 'integer', 'null' => false, 'default' => null, 'unsigned' => false),
),
),
),
);
🔵これならカラム名称変更のみなので存在する値が入ったまま
app/Config/migration/xxxxxxxxx_RenameColumnHogeToFuga.php
/**
* Actions to be performed
*
* @var array $migration
*/
public $migration = array(
'up' => array(
'rename_field' => array(
'test_table' => array(
'hoge' => 'fuga'
),
),
),
'down' => array(
'rename_field' => array(
'test_table' => array(
'fuga' => 'hoge'
),
),
),
);