FuelPHPでマイグレーションによるテーブルの作成

マイグレーション、今後お世話になりそう。

1.DBマイグレーションとは

DBマイグレーションとは、DBに保存されているデータを保持したまま、テーブルの作成やカラムの変更などを行うための機能のこと。

アプリケーションが拡張していく段階で、DBも(構造的に)変更したい場面に使われる。
(ぶっちゃけまだいらない)

最初、PHP側から操作していいのか、、、と思ったけど。
データベース(テーブル)の変更履歴などを記録できるので、PHP側から操作するほうがいいのだろうか。やってみる。

2.FuelPHPでのマイグレーション

実際に、マイグレーションでテーブルを作成してみる。

FuelPHPをインストールしたディレクトリで oil コマンドを実行する(Windows だと oil の前に php がいるかも)。

cd ~/workspace4.3.1/blog oil g model users name:varchar[50] email:varchar[255] sex:int prefecture_id:int

以下のコメントが表示される。

Creating model: /home/runble1/workspace4.3.1/blog/fuel/app/classes/model/user.php
Creating migration: /home/runble1/workspace4.3.1/blog/fuel/app/migrations/001_create_users.php

APPPATH/classes/model/ に user というモデルを作成された。
APPPATH/migrations/ に 001_create_user というファイルが作成された。という意味。

この migrations内のファイルは、FuelPHP が利用するデータベース構造の管理を行うファイルとなる。

001は最初のバージョンであることを示す。
同じ数字を使わないこと。スキップもなし。

この migrationファイルの中にテーブルの作成に必要なコードが自動的に生成されている。
migrationファイルでテーブルを作成してみる。

oil refine migrate

マイグレーションしたのが初めてなら、データベース上に「users」とテーブルが「migrations」テーブルの2つが作成されているはず。
「migrations」 テーブルは、マイグレーションした際マイグレーションの履歴を自動で書き込まれるテーブル。

今回のマイグレーションで作成されたテーブルは「users」のほう。
「001_create_user」ファイルと「users」テーブルの中身が同じであることを確認する。

また、マイグレーションファイルと同時に生成されたモデルは ORMモデルとなる。
ORMモデルは次回。

参考

マイグレーション – 概要 – FuelPHP ドキュメント

3. データベースマイグレーション | densan-labs.net

コメント

タイトルとURLをコピーしました