bakeも問題無く動作するしいよいよCake3も熱くなってきたね。モデル周り以外は2系とそんなに使い方に差異はないかも。session周りが若干変わったくらい?
インストール手順
- まずはcomposer.jsonに下記を追記
1 2 3 |
"require": { "cakephp/migrations": "dev-master" } |
- したらupdate
1 |
php composer.phar update |
- 最後にプラグインをロード
まぁ読み込めればどこでもいいんだけどbootstrap.php
あたりで読み込むのがベターかと。
1 |
Plugin::load('Migrations'); |
使い方
cliからbin/cake migrations
で呼び出せる。
- まずは初期化
1 |
bin/cake migrations create Initial |
これをすると一番はじめのマイグレーションファイルが生成されて、DBにも履歴管理用のテーブルが生成される。
この生成されたファイルのup()メソッドにアップグレード用のSQLを記述。
down()メソッドにダウングレード用のメソッドを記述する。
※Symfony2のようなDBの差分自動算出機能はない模様。(これはマジで不便)
なので下記のように自分で書いてやる。
※SQLは適当なので注意。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
/** * Migrate Up. */ public function up() { $query = " DROP TABLE IF EXISTS users; CREATE TABLE IF NOT EXISTS users ( id int(10) unsigned NOT NULL, created datetime NOT NULL, modified datetime NOT NULL ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; "; $this->execute($query); } |
down()メソッドに差し戻し用のSQLも書いてやったら、migrate
を実行。
1 |
bin/cake migrations migrate |
差し戻したければrollback
1 |
bin/cake migrations rollback |
とりあえずこれだけ知ってれば使えるはず。
あとは公式を参照されたし。