流れとしては以下。
- commandMap にてマイグレーションの設定を予め書いておく
- カスタマイズしたマイグレーションテンプレートを作成
- 既存のデータベースからマイグレーション用にスキーマをダンプしてくれるコマンドを作成
- マイグレーションのコマンドを実行し、ファイルを作成
1. commandMap にてマイグレーションの設定を予め書いておく
protected/config/console.php に commandMap を追加します。Yii Guide の ここ らへんで説明されています。テーブルのプレフィックス以外はガイドのやつと同じものですが、以下のように書きます。
2. カスタマイズしたマイグレーションテンプレートを作成
protected/migrations/ に template.php を作成します。どうやって作っていくのかを少し調べてみたんですが、情報が見つけられなかったので、自分になりにですが考えて、以下のようにしました。そのまんま php ファイルの雰囲気で書いて、クラス名だけ {ClassName} にしただけですが (ちなみにこれそのまま実行すると Parse error が発生します) 。
3. 既存のデータベースからマイグレーション用にスキーマをダンプしてくれるコマンドを作成
これは Yii Guide のコメントにあったコードを元に少し追加したものです。これ です。
4. マイグレーションのコマンドの実行し、ファイルを作成
あとは、php yiic migrate create init でマイグレーションファイルを作成して、 php yiic dumpshema <database_name> で出力されたものをマイグレーションファイルにコピペするだけです。インデックスなどは出力されないので、自分で追加していくことになります。
最後に php yiic migrate で完成!
0 件のコメント:
コメントを投稿