FuelPHPでデータベースを管理するときにマイグレーションを使うと便利だけど、細かいことはしないのでoil g migrateとoil r migrateで済ませていたけど、ちょいちょい開発でいじるために調べた内容をメモする。
まず、マイグレーションは APPPATH/migrations/の下に「連番_名前.php」(ex.123_add_index.php)みたいなファイルを作る。
このファイルの中身は、
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
namespace Fuel\Migrations; class Add_Index { public function up() { \DBUtil::create_index('parameters', 'key', 'UNIQ_KEY', 'UNIQUE'); } public function down() { \DBUtil::drop_index('parameters', 'UNIQ_KEY'); } } |
みたいな、upとdownメソッドを持つクラスになっている。 ファイル名の名前にあわせてクラス名を設定する。
upメソッドではマイグレーションを適用する処理を書く。 この場合は、parametersテーブルのkeyフィールドにUNIQ_KEYと言うUNIQUEキーを設定している。
downメソッドではマイグレーションを取り消す場合の処理内容を書く。 この場合は、追加したキーを削除。
マイグレーションを実行する場合は、通常 oil r migrate で実行するけど、開発では適用位置を調整したいのでオプションを使う。
oil r migrate:up
マイグレーションを1段階だけ実行する
oil r migrate:down
マイグレーションを1段階だけ取り消す
oil r migrate –version=12
マイグレーションを指定したバージョンにする(この場合は、012_hoge.phpマイグレーションの実行状態に移動する。 現在の適用状態が12未満なら進み、13以上なら巻き戻る)
初期レコード投入や、そもそもDBの構造を操作せずにレコードを操作することも出来るので、コードリストなどを管理することも出来る。
(425)