- 更新日: 2016年1月29日
- PHP & CakePHP
CakePHPでカラム追加のマイグレーション
スポンサーリンク
    
    
    
    
  CakePHP 3 で既存の DB テーブルにカラムを追加するマイグレーションの方法です。Rails のマイグレーションと同じように add column(addColumn)の API が用意されているので、それを利用する。
— 環境 —
PHP 5.5.19
CakePHP 3.1.1
【お知らせ】 英単語を画像イメージで楽に暗記できる辞書サイトを作りました。英語学習中の方は、ぜひご利用ください!
スポンサーリンク
以下の公式ドキュメントのページが参考になります。
もしコマンドラインのマイグレーション名が “AddXXXToYYY” や “RemoveXXXFromYYY” といった 書式で、その後にカラム名と型が続けば、カラムの追加・削除を行うコードを含んだ マイグレーションファイルが生成されます。$ bin/cake bake migration AddPriceToProducts price:decimal
users テーブルにカラムを追加する例
データベースの users テーブルに role, name カラムを追加する例です。
まずは、マイグレーション用ファイルを生成する。
| 1 2 3 | $ bin/cake bake migration AddColumnsToUsers role:string name:string | 
生成されたマイグレーション用のファイル。必要があれば修正します。
config/Migrations/*****_add_columns_to_users.php
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | <?php use Migrations\AbstractMigration; class AddColumnsToUsers extends AbstractMigration {     /**      * Change Method.      *      * More information on this method is available here:      * http://docs.phinx.org/en/latest/migrations.html#the-change-method      * @return void      */     public function change()     {         $table = $this->table('users');         $table->addColumn('role', 'string', [             'default' => null,             'limit' => 255,             'null' => false,         ]);         $table->addColumn('name', 'string', [             'default' => null,             'limit' => 255,             'null' => false,         ]);         $table->update();     } } | 
続いて、マイグレート実行。
| 1 2 3 | $ bin/cake migrations migrate | 
これで users テーブルに role, name のカラムが追加されました。
スポンサーリンク
私は Ruby on Rails の前は、PHP & CakePHP を使っていました(今も使いますけど)。PHP についてはオライリーの本を中心に軽く10冊以上は読み込みました。
      
      
    
>> 次の記事 : CakePHPでDBテーブルのカラム名がMySQL予約語に被りエラー
<< 前の記事 : CakePHPでシェル/コマンドラインからタスク実行
- PHP & CakePHP の関連記事
- PHP+MySQLでNo such file or directoryエラー
- bin/cakeコマンドでintlエラーが出る場合の対処(CakePHP)
- CakePHPアプリケーションをCapistranoでデプロイ
- Integrity constraint violation:Column ‘created’ in order clause is ambiguousエラー/CakePHP
- CakePHPでDB関連テーブルのレコード・データを取得
- CakePHPでカラム属性に別名/エイリアスを付ける仮想フィールド
- CakePHPで日付選択フォームのカスタマイズ
- CakePHP3で現在のコントローラー名・アクション名を取得
- PHPインストールでconfigure: error: freetype.h not foundエラー
- CakePHPでログイン後に元のページにリダイレクトさせる

 画像付き英語辞書 Imagict | 英単語をイメージで暗記
画像付き英語辞書 Imagict | 英単語をイメージで暗記









Leave Your Message!