「Php/fuelphp/migration/table」の版間の差分
提供: 初心者エンジニアの簡易メモ
(ページの作成:「==Migrationを作成== #プロジェクトトップに移動して以下コマンド実行 php oil generate migration create_tests name:text email:string[50] password:st...」) |
|||
(同じ利用者による、間の8版が非表示) | |||
行1: | 行1: | ||
==Migrationを作成== | ==Migrationを作成== | ||
#プロジェクトトップに移動して以下コマンド実行 | #プロジェクトトップに移動して以下コマンド実行 | ||
− | php oil generate migration | + | php oil generate migration create_users name:varchar[31] email:string[63] password:string[31] msg:text |
+ | |||
#以下が作成されたことを確認 | #以下が作成されたことを確認 | ||
− | fuel/app/migrations/ | + | fuel/app/migrations/001_create_users.php |
namespace Fuel\Migrations; | namespace Fuel\Migrations; | ||
− | class | + | class Create_users |
{ | { | ||
− | + | public function up() | |
− | + | { | |
− | + | \DBUtil::create_table('users', array( | |
− | + | 'id' => array('constraint' => 11, 'type' => 'int', 'auto_increment' => true, 'unsigned' => true), | |
− | + | 'name' => array('constraint' => 31, 'type' => 'varchar'), | |
− | + | 'email' => array('constraint' => 63, 'type' => 'varchar'), | |
− | + | 'password' => array('constraint' => 31, 'type' => 'varchar'), | |
− | + | 'msg' => array('type' => 'text'), | |
− | + | 'created_at' => array('constraint' => 11, 'type' => 'int'), | |
− | + | 'updated_at' => array('constraint' => 11, 'type' => 'int'), | |
− | + | ), array('id')); | |
− | + | } | |
− | + | public function down() | |
− | + | { | |
− | + | \DBUtil::drop_table('users'); | |
+ | } | ||
} | } | ||
行30: | 行32: | ||
以下テーブルができる | 以下テーブルができる | ||
− | CREATE TABLE ` | + | CREATE TABLE `users` ( |
− | `id` int(11) NOT NULL AUTO_INCREMENT, | + | `id` int(11) unsigned NOT NULL AUTO_INCREMENT, |
− | `name` | + | `name` varchar(31) NOT NULL, |
− | `email` varchar( | + | `email` varchar(63) NOT NULL, |
− | `password` varchar( | + | `password` varchar(31) NOT NULL, |
+ | `msg` text NOT NULL, | ||
`created_at` int(11) NOT NULL, | `created_at` int(11) NOT NULL, | ||
`updated_at` int(11) NOT NULL, | `updated_at` int(11) NOT NULL, | ||
行42: | 行45: | ||
==処理を戻す== | ==処理を戻す== | ||
php oil refine migrate:down | php oil refine migrate:down | ||
+ | |||
+ | 注意:戻してmigrationを新しく作成してrefineすると最新バージョンまでの処理が全て実行される | ||
==戻した処理を進める== | ==戻した処理を進める== | ||
行48: | 行53: | ||
==バージョンを指定して処理== | ==バージョンを指定して処理== | ||
php oil refine migrate --version=10 | php oil refine migrate --version=10 | ||
+ | |||
+ | ==smallintにしたい場合== | ||
+ | column1:smallint | ||
+ | |||
+ | ==整数だけにしたい場合== | ||
+ | column1:int:unsigned | ||
==カラム追加サンプル== | ==カラム追加サンプル== | ||
php oil g migration add_bio_to_tests bio:text | php oil g migration add_bio_to_tests bio:text | ||
php oil r migrate | php oil r migrate | ||
+ | |||
+ | ==バージョンを消し去りたいとき== | ||
+ | 以下にあるバージョンファイルを消してしまえば良い。 | ||
+ | fuel/app/migrations/00*_ | ||
==参考== | ==参考== | ||
http://d.hatena.ne.jp/Kenji_s/20111210/1323475862 | http://d.hatena.ne.jp/Kenji_s/20111210/1323475862 |
2015年10月25日 (日) 19:22時点における最新版
目次
Migrationを作成
- プロジェクトトップに移動して以下コマンド実行
php oil generate migration create_users name:varchar[31] email:string[63] password:string[31] msg:text
- 以下が作成されたことを確認
fuel/app/migrations/001_create_users.php
namespace Fuel\Migrations; class Create_users { public function up() { \DBUtil::create_table('users', array( 'id' => array('constraint' => 11, 'type' => 'int', 'auto_increment' => true, 'unsigned' => true), 'name' => array('constraint' => 31, 'type' => 'varchar'), 'email' => array('constraint' => 63, 'type' => 'varchar'), 'password' => array('constraint' => 31, 'type' => 'varchar'), 'msg' => array('type' => 'text'), 'created_at' => array('constraint' => 11, 'type' => 'int'), 'updated_at' => array('constraint' => 11, 'type' => 'int'), ), array('id')); } public function down() { \DBUtil::drop_table('users'); } }
Migrationを使ってテーブル作成
- fuel/app/config/db.phpの設定をする
- 以下コマンド実行
php oil refine migrate
以下テーブルができる
CREATE TABLE `users` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(31) NOT NULL, `email` varchar(63) NOT NULL, `password` varchar(31) NOT NULL, `msg` text NOT NULL, `created_at` int(11) NOT NULL, `updated_at` int(11) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8
処理を戻す
php oil refine migrate:down
注意:戻してmigrationを新しく作成してrefineすると最新バージョンまでの処理が全て実行される
戻した処理を進める
php oil refine migrate:up
バージョンを指定して処理
php oil refine migrate --version=10
smallintにしたい場合
column1:smallint
整数だけにしたい場合
column1:int:unsigned
カラム追加サンプル
php oil g migration add_bio_to_tests bio:text php oil r migrate
バージョンを消し去りたいとき
以下にあるバージョンファイルを消してしまえば良い。
fuel/app/migrations/00*_