Laravel学習帳

Laravel5.2の学習帳です。開発環境はXAMPP for Windows 5.6.19 / 本番環境はさくらサーバー(スタンダード)

基礎知識

マイグレーション(更新作業)

2017/10/13

Laravelではマイグレーション機能がついています。

基本的にDBはマイグレーションで構築します。

前回はマイグレーションで新規テーブルを作成しました。

マイグレーションについて(新規作成)

今回はそのテーブルに変更をかける処理についてエントリーします。

doctrine/dbalパッケージについて

Laravel5.2ではマイグレーションでテーブルの更新作業するには "doctrine/dbal" パッケージが必要です。

composerを使って入れます。

【 解説 】
doctrine/dbal が入ってなかったら、例えばカラムのデータ型を変更したときなどエラーになります。

 
1)composer.jsonの編集

"require": {
  "php": ">=5.5.9",
  "laravel/framework": "5.2.*",
  "doctrine/dbal": "2.*" //バージョン2系を指定
}

 
2)composerコマンド

composer update

 
3)動作確認

データ型を変更して再度、マイグレーションを実行します。

 

チュートリアル

前回作成した「従業員」テーブル(employees)に「メールアドレス」のカラムを追加します。

 

手順

1)マイグレーションファイルの作成
2)マイグレーションファイルの編集
3)マイグレーションファイルの実行
4)動作確認

 

1)マイグレーションファイルの作成

$ php artisan make:migration update_employees_table --table=employees
1)オプションをつけて雛形を作成しています。
2)「add_mail_to_employees_table」でもわかりやすくてOK。

 

2)マイグレーションファイルの編集

public function up()
{
  Schema::table('employees', function (Blueprint $table){
  // emailカラムを追加
  $table->string('email')->comment('メールアドレス');
  });
}

public function down()
{
    Schema::table('employees', function (Blueprint $table) {
      $table->dropColumn('email');
    });
}

少し解説を入れます。

string()にチェーンメソッドで->comment()を追加しています。

これをカラム修飾子と呼びます。

カラム修飾子 説明 補足説明
comment() カラムにコメントをつける。 -
after('column') 指定カラムの次にカラムを設置。 MySQLのみ
nullable() カラムにNULL値を許す -
default($value) カラムのデフォルト(default)値設定 -

 

3)マイグレーションファイルの実行

先ほど編集したマイグレーションファイル(xxxx_xx_xx_update_employees_table.php)を実行させます。

$ php artisan migrate

 

4)動作確認

「email」のカラムが追加されているか確認します。

desc employees;

マイグレーションによるテーブルの更新作業は以上になります。

 

-基礎知識