Laravel Migration(カラム属性変更)
概要
Laravelでカラムに属性を変更したい時のマイグレーション。
参考
ファイル生成コマンド
$ php artisan make:migration ファイル名(create_users_table) オプション(--create=users)
- オプション
- 生成するテーブル名を宣言(--create)。
- 変更を加えるテーブルを宣言(--table)。
- ファイルのパスを指定(--path)。
ファイルの構造
upとdownの二種類のメソッドがある。
- up
- 新しいテーブル、カラム、インデックスをdbに追加するために使用する(カラム属性の変更もupメソッド)。
- down
- upが行った操作を元に戻す。
実行
$ php artisan migrate
カラム変更
laravelはデフォルトではカラムの変更を行うことができない。composerでdoctrine/dbalを追加する必要がある。
$ composer require doctrine/dbal
無いと下のエラーが出る。上のコマンドはappのホームディレクトリで実行する。
[RuntimeException] Changing columns for table "books" requires Doctrine DBAL; install "doctrine/dbal".
カラムの属性変更
$ php artisan make:migration change_books_table --table books
<?php public function up() { Schema::table('books', function (Blueprint $table) { $table->datetime('published')->change(); }); }
確認
mysql> desc books;