コマンド
マイグレーションファイルをもとにアップする
Windows
php app/Console/cake.php Migrations.migration run up
mac/Linux
./Console/cake Migrations.migration run up
スキーマファイルと、DBを比較してマイグレーションファイル生成
Windows
php app/Console/cake.php Migrations.migration generate -f
mac/Linux
./Console/cake Migrations.migration generate -f
参考サイト
https://github.com/CakeDC/migrations/tree/master/Docs/Documentation
http://www.ryuzee.com/contents/blog/6108
初期マイグレーションの作成方法
まず、マイグレーションを管理するためのテーブルを作成
Console/cake Migrations.migration run all -p
※もしschema.phpが存在していれば、一旦削除して以下を実行
※-fオプションはモデルファイルが存在しないテーブルも含めるため
Console/cake Migrations.migration generate -f
Do you want generate a dump from current database? (y/n)
# schema.phpを現在のDB全体からまるごと行うかどうか y
Do you want to preview the file before generation? (y/n)
# プレビューするかどうか y
Please enter the descriptive name of the migration to generate:
# マイグレーションファイル名
schema.phpを現在のDBの状態で作成したい場合
Console/cake schema generate -f
DB情報の変更の差分を取得してマイグレーションファイル作成
Console/cake Migrations.migration generate -f
※schema.phpがある前提
y選択すると、現在のDBの状態と、schema.phpと比較して差分をマイグレーションとして作成する
マイグレーションファイルを作成して適用
Console/cake Migrations.migration generate
Do you want generate a dump from current database? (y/n)
# schema.phpと比較するかなので n
Do you want to preview the file before generation? (y/n)
# プレビューするかどうか n
Please enter the descriptive name of the migration to generate:
# マイグレーションファイル名
以下のようなファイルがMigration以下にできるのでupに適用時、downに外す時の設定を入れる
public $migration = array(
'up' => array(
),
'down' => array(
),
);
ここではフィールド名を変更のサンプル
public $migration = array(
'up' => array(
'rename_field' => array(
'members' => array(
'is_available' => 'is_availables'
)
)
),
'down' => array(
'rename_field' => array(
'members' => array(
'is_availables' => 'is_available'
)
)
),
);
参考サイト
https://github.com/CakeDC/migrations/blob/master/Docs/Documentation/Migrations.md
作成したバージョンを適用するコマンド
Console/cake Migrations.migration run up
schema.phpにも反映するコマンド
Console/cake schema generate -f
一つ前のバージョンに戻す場合のコマンド
Console/cake Migrations.migration run down