破棄されたブログ

このブログは破棄されました。

FuelPHP のマイグレーションの挙動確認

テーブルを作る

oil g migration create_example
Creating migration: /path/to/fuel/app/migrations/014_create_example.php
oil refine migrate
Performed migrations for app:default:
013_drop_hoge
014_create_example

テーブルを作って消す

oil g migration drop_example
Creating migration: /path/to/fuel/app/migrations/015_drop_example.php
oil refine migrate
Performed migrations for app:default:
015_drop_example

テーブルを作って消すっていう一連の動作をもとに戻す

oil refine migrate --version=12
Performed migrations for app:default:
013_drop_hoge

もう一度やり直す。このマイグレーションを行うと結果的に、example テーブルは最初から存在しないのと同じになる。
この場合に、マイグレーションはテーブル作成と削除のクエリを両方共発行するのか、もしくは、一切のクエリを発行しないのかどうかを確認する。

oil refine migrate
Performed migrations for app:default:
013_drop_hoge
014_create_example
015_drop_example

MySQL のクエリログを確認する。
example の CREATE と DROP クエリが両方発行されていることが確認された。

Connect   user@localhost on fuel
Query     SET NAMES 'utf8'
Query     SELECT * FROM `migration` LIMIT 1
Query     SELECT `migration` FROM `migration` LIMIT 1
Query     SELECT * FROM `migration` ORDER BY `type` ASC, `name` ASC, `migration` ASC
Query     DROP TABLE IF EXISTS `hoge`
Query     INSERT INTO `migration` (`name`, `type`, `migration`) VALUES ('default', 'app', '013_drop_hoge')
Query     CREATE TABLE IF NOT EXISTS `example` (
NSIGNED NOT NULL AUTO_INCREMENT,
d` (`id`)
T utf8
Query     INSERT INTO `migration` (`name`, `type`, `migration`) VALUES ('default', 'app', '014_create_example')
Query     DROP TABLE IF EXISTS `example`
Query     INSERT INTO `migration` (`name`, `type`, `migration`) VALUES ('default', 'app', '015_drop_example')
Quit
広告を非表示にする