0
0

More than 3 years have passed since last update.

🍰【CakePHP2】存在する値を消さずにカラム名変更のみをするマイグレーション

Last updated at Posted at 2020-04-08

環境

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'
                ),
            ),
        ),
    );

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0