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

2019/03/01

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

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

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

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

 

前提条件

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

ポイント

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

パッケージは composer 経由で入れます。composer の使い方は以下をご参考ください。


$ composer require doctrine/dbal:2.*

パッケージを入れるとカラムの変更が可能になります。

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

 

演習

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

 

手順

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

 

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


# オプションをつけて雛形を作成しています。
$ php artisan make:migration update_employees_table --table=employees

ポイント

マイグレーションファイル名はわかりやすい名前にしましょう。
「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');
    });
}

データベースのカラムの設定のやり方は以下のページでまとめました。

 

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

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


$ php artisan migrate

 

4)動作確認

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


desc employees;

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

本庄マサノリ

仕事でLaravelを使っています。気づいたことや新しい発見など情報を発信していきます。メールはこちら

 

-基礎知識