0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

マイグレーションで既存のテーブルにカラムを追加する方法

Posted at

マイグレーションファイルの作成

bin/cake Migrations create[or bake] マイグレーションファイル名

マイグレーションファイル作成と同時に、カラムなどの追加情報をマイグレーションファイルにいれたい場合。

bin/cake Migrations create(or bake) マイグレーションファイル名 カラム名:型

マイグレーションファイルに追加内容を書く

<?php
use Migrations\AbstractMigration;

class AddColumnHogeToHogeHoge extends AbstractMigration
{
    /**
     * Change Method.
     *
     * More information on this method is available here:
     * http://docs.phinx.org/en/latest/migrations.html#the-change-method
     * @return void
     */
    public function change()
    {
    }
}

このようなファイルが作成されるので、changeメソッド内に書いていく。

public function change()
    {
        $table = $this->table('hoge_hoge');
        $table->addColumn('hoge', 'integer', [
            'null' => true,
        ]);
        $table->update();
    }

addColumnメソッド内の第一引数に「カラム名」、第二引数に「型」を指定する。

'null' => trueの一文は、そのカラムの情報が入るか不確かな場合、NULLを許可するという意味で、trueにするといいと思います。
確実にこのカラムには、データが入っていないといけない場合は、falseがいいと思います。

他にもこの連想配列の中に文字数制限のlimitや、デフォルト値を指定するdefaultなどいろいろあるので、要件によって指定するといいです。

マイグレーションファイル作成時に、カラム名:型を指定すると、メソッド内にこれらの情報が書かれて作成されます。

マイグレーションの実行

bin/cake Migrations migrate

実行されたかの確認は、
bin/cake Migrations statusを入力して、作成したマイグレーションファイルが「up」になっていればOK。
「down」の場合は、適用されていない状態を表す。

マイグレーションファイル作成後に、statusで確認すると、downになっている。

もし、実行後に修正を加えたい場合
bin/cake migrations rollback
を入力する事で、一つ前に戻る事が出来る。

rollbackコマンド実行後に、statusコマンドで状態を確認すると、up⇨downになっています。

まとめ

マイグレーションファイル作成⇨情報(カラム、型など)の追加⇨実行⇨確認

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?