facebook twitter hatena line email

「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 create_tests name:text email:string[50] password:string[125]
+
  php oil generate migration create_users name:varchar[31] email:string[63] password:string[31] msg:text
 +
 
 
#以下が作成されたことを確認
 
#以下が作成されたことを確認
fuel/app/migrations/001_create_tests.php
+
fuel/app/migrations/001_create_users.php
 
  namespace Fuel\Migrations;
 
  namespace Fuel\Migrations;
  class Create_tests
+
  class Create_users
 
  {
 
  {
        public function up()
+
    public function up()
        {
+
    {
                \DBUtil::create_table('tests', array(
+
        \DBUtil::create_table('users', array(
                        'id' => array('constraint' => 11, 'type' => 'int', 'auto_increment' => true),
+
            'id' => array('constraint' => 11, 'type' => 'int', 'auto_increment' => true, 'unsigned' => true),
                        'name' => array('type' => 'text'),
+
            'name' => array('constraint' => 31, 'type' => 'varchar'),
                        'email' => array('constraint' => 50, 'type' => 'varchar'),
+
            'email' => array('constraint' => 63, 'type' => 'varchar'),
                        'password' => array('constraint' => 125, 'type' => 'varchar'),
+
            'password' => array('constraint' => 31, 'type' => 'varchar'),
                        'created_at' => array('constraint' => 11, 'type' => 'int'),
+
            'msg' => array('type' => 'text'),
                        'updated_at' => array('constraint' => 11, 'type' => 'int'),
+
            'created_at' => array('constraint' => 11, 'type' => 'int'),
                ), array('id'));
+
            'updated_at' => array('constraint' => 11, 'type' => 'int'),
        }
+
        ), array('id'));
        public function down()
+
    }
        {
+
    public function down()
                \DBUtil::drop_table('tests');
+
    {
        }
+
        \DBUtil::drop_table('users');
 +
    }
 
  }
 
  }
  
行30: 行32:
  
 
以下テーブルができる
 
以下テーブルができる
  CREATE TABLE `tests` (
+
  CREATE TABLE `users` (
   `id` int(11) NOT NULL AUTO_INCREMENT,
+
   `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
   `name` text NOT NULL,
+
   `name` varchar(31) NOT NULL,
   `email` varchar(50) NOT NULL,
+
   `email` varchar(63) NOT NULL,
   `password` varchar(125) NOT NULL,
+
   `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を作成

  1. プロジェクトトップに移動して以下コマンド実行
php oil generate migration create_users name:varchar[31] email:string[63] password:string[31] msg:text
  1. 以下が作成されたことを確認

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を使ってテーブル作成

  1. fuel/app/config/db.phpの設定をする
  2. 以下コマンド実行
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*_

参考

http://d.hatena.ne.jp/Kenji_s/20111210/1323475862