ここにあるようにCakePHPではデータベースのテーブル構造にgitのようにマイグレーションをかけて更新していくことができます.
今回はArticlesという既存のテーブルに新たなカラムstatusを加えていきます.まずコンソールで,
$ bin/cake bake migration AddStatusToArticles
のように打つと,新たなカラムを追加するためのマイグレーションファイルの雛形がconfig/Migrations下に生成されます. 今回のStatusの仕様はTinyINTでNullを許容しないので以下のように内容を編集して
use Migrations\AbstractMigration; use Phinx\Db\Adapter\MysqlAdapter; class AddStatusToArticles 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() { $table = $this->table('articles'); $table->addColumn('status', 'integer', [ 'default' => null, 'limit' => MysqlAdapter::INT_TINY, 'after' => 'prorated_period', 'null' => false, ]); $table->update(); } }
再びコンソールで,
$ bin/cake migrations migrate
を入力することで新規のマイグレーションを実行することができます.テーブル構造をみると新たなカラムが追加されているはずです.
変更を差し戻したい時は
$ bin/cake migrations rollback
でもとに戻ります.