今回はBooksという新しいテーブルを手動で追加するMigrationを書いて行きたいと思います.
まずmigrationの雛形をbakeします.
$ bin/cake migrations createBooks
ここでxxx_CreateBooks.phpというファイルが作成されます.
Booksは以下のカラムを持つとするとき, * Title (‘varchar(32)’) * Author (‘varchar(32)’) * created (timestamp) * modified (timestamp)
xxx_CreateBooks.phpは以下のように書き換えることでMigrationが実装されます.
<?php use Migrations\AbstractMigration; class CreateBooks extends AbstractMigration { public function up() { $this->table('books') ->addColumn( 'title', 'string', [ 'limit' => 32, 'null' => false, 'comment' => '本のタイトル', ] ) ->addColumn( 'author', 'string', [ 'limit' => 32, 'null' => false, 'comment' => '本の著者', ] ) ->addColumn( 'created', 'timestamp', [ 'comment' => '生成日時', 'default' => 'CURRENT_TIMESTAMP', 'limit' => null, 'null' => true, ] ) ->addColumn( 'modified', 'timestamp', [ 'comment' => '変更日時', 'default' => 'CURRENT_TIMESTAMP', 'update' => 'CURRENT_TIMESTAMP', 'limit' => null, 'null' => true, ] ) ->create(); } public function down(){ $this->table('books')->drop()->save(); } }
きちんとrollbackも動くようにdownも書きましょう.
あとは
$ bin/cake migrations migrates
でMigrationが完了します. このときidという名前のPrimary Keyが自動で作成されます.
Migrationを差し戻したいときは,
$ bin/cake migrations rollback
です.