CakePHP3で楽なマイグレーション 覚え書き
CakePHP3で楽なマイグレーション - Qiitaの記事を読んだので、 自分なりにまとめておこうと思う。
CakePHP3マイグレーションの基本
DBAの仕事
1.DB、テーブルを作る
DB、テーブルを用意しよう。
普通に作って大丈夫
2.一発目のマイグレーションファイルの作成
一発目のマイグレーションはコマンドで作ろう
bin/cake bake migration_snapshot Initial
CakePHP3のドキュメントURL(http://book.cakephp.org/3.0/ja/migrations.html#id14 )
3.テーブル定義を変更したらやる事
テーブル定義を変更したら、マイグレーションファイルを作ろう
子万dので 、今のDB状態と直前マイグレーションを行った際のDBの状態を比較して差分のマイグレーションファイルを作成できる
bin/cake bake migration_diff add_hogehoge_fugafuga
↑これでテーブル定義を変更した内容で、マイグレーションファイルを作成できる
DBを使いたい人がやる事(プログラマ)
1.テーブルをまだ何も作っていない場合
DBAが作ったマイグレーションからテーブルを作成できる
bin/cake migrations migrate
DBAががマイグレーションを作るたびにこのコマンドを行う事で、テーブル情報を同期し続けることができる。
2.すでにテーブルがあり、DBAと同じ状態の場合
すでにテーブルがあり、DBAと同じ場合は、
以下のコマンドで、「今のDBの状態はマイグレーションを全て反映した状態である」という状態を作れる。
bin/cake migrations mark_migrated
「phinxlog」というテーブルが作成され、その中にマイグレーションしたログが作成される。
3.DBAの持っているテーブルの状態と違う場合
DBAの持っているテーブルの状態と違う場合は、2パターンの対応方法がある。
・一度全部消してmigrateする
・alter tableや、create tableを行って、DBAの状態に合わせる
前者の場合は、一度まっさらにして、マイグレーションを全て実行する。
bin/cake migrations migrate
後者の場合は、DBAと同じ状態になっているので、Cakeをだます。
(また以下のコマンドを使う)
bin/cake migrations mark_migrated