https://github.com/CakeDC/migrations
- vendorなどにMigrationsとして配置
- bootstrap.phpにプラグインをロードする記述 CakePlugin::load(array('Migrations'));
Console/cake Migrations.migration run all -p
Console/cake Migrations.migration generate -f
-fはモデルがないテーブルも含める為。
Do you want generate a dump from current database? (y/n) -> y
Do you want to preview the file before generation? (y/n) -> プレビューを見るならy
Please enter the descriptive name of the migration to generate: 名前をつける。タイムスタンプなどは自動でつくので不要。
Console/cake schema generate –f
Console/cake Migrations.migration generate -f
Do you want compare the schema.php file to the database? (y/n) -> y
Please enter the descriptive name of the migration to generate:
> add_adminusers
Generating Migration...
Done.
Do you want update the schema.php file? (y/n)
[y] > y
Cake Schema Shell
---------------------------------------------------------------
Generating Schema...
Schema file exists.
[O]verwrite
[S]napshot
[Q]uit
Would you like to do? (o/s/q)
[s] > o
Schema file: schema.php generated
Config/Migration/配下にマイグレーションファイルが作成される
Console/cake Migrations.migration run
適用する番号を選ぶ
まとめて適用する場合
Console/cake Migrations.migration run all -p
Console/cake Migrations.migration status
マイグレーションの際にデータ移行やバックアップを行ったり初期データを登録したりしたい場合は、before() や after()の中にテーブルをごにょごにょする処理を実装することになります。
テーブルスキーマのキャッシュ残ってるとうまくマイグレーションファイルが作られないので注意。