CMS構築を目的にPHPをベースとしたWordPress、CakePHPやPEARなどオープンソースを中心に解説しています

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
このエントリーをはてなブックマークに追加

Monthly Archives

Search