FuelPHPのmigration機能は、コマンドラインやプログラムから簡単にDBのテーブルを操作、管理できます。
ドキュメントは少なく、その概念を理解するのには少々苦労しますが、使いこなせば非常に便利です。
そこで、私がこれまでに実行したmigrateコマンドを、ここに随時、メモとして書き留めておきたいと思います。
migrateの実行
テーブルの追加、削除、カラム追加、削除や変更などの設定を、oilコマンドを使ってmigrationファイルを生成することができます。
例えばテーブル「sample」を作成する場合は、以下のコマンドを実行します。
php oil generate migrate sample (...カラムの設定などは略)
するとフォルダ「/fuel/app/migrations/」に「001_create_sample.php」というファイルが生成されます。
このファイルの中にはテーブルの定義が記述されており、以下のmigrateコマンドを実行することで、実際にDBに反映されます。
php oil refine migrate
generateコマンドを実装する度に「002_」、「003_」と連番でmigrationファイルが生成されていきます。
これはDBの状態をバージョン管理するためであり、以下のようにコマンドを実行することで、いつでもDBの状態を変更できます。
php oil refine migrate:current (最新の状態にする) php oil refine migrate:up (バージョンを一つ新しくする) php oil refine migrate:down (バージョンを一つ古くする) php oil refine migrate --version=10 (指定したバージョンに更新する)
つまり、migrationファイルを適切に管理することで、本番環境、ステージング環境や開発環境など各環境でDB設定を同期できます。
それでは、具体的にさまざまなDB操作に関するmigrateコマンドを記していきます。
テーブルを追加する
先ほど触れたようにテーブル「sample」を作成するために、以下のコマンドを実行します。
php oil generate migrate sample column1:text column2:string[50] column3:string[125] php oil refine migrate
それぞれ3つカラムをもったテーブルが生成されます。
以下のようにmigrateではなくmodelで作成すれば、modelクラスとmigrationファイルが1度に生成されるので楽です。
php oil generate model sample column1:text column2:string[50] column3:string[125] php oil refine migrate
カラムを追加する
作成したテーブル「sample」にint型の「column4」を追加するには、以下のようにコマンドを実行します。
php oil generate migration add_column4_to_sample column4:int[1]
カラムを追加する位置を「column2」の後に、さらにはデフォルト値は0、NULL設定を追加して実行することもできます。
php oil generate migration add_column4_to_sample column4:int[1]:after[column2]:default[0]:null
コメントする