マイグレーション(新規作成)

2019/08/06

LaravelではマイグレーションでDBを管理します。

マイグレーションとはデータベースのバージョンコントロールのようなものです。

チーム内でスキーマを簡単に更新し共有できるようにしてくれます。

本日はマイグレーションについてのエントリーです。

 

方法

 
手順

 

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

マイグレーションファイルってのは「どんなテーブルを作るか」というテーブルの設計書です。

まずは、マイグレーションファイルを作成をします。


# 書式
php artisan make:migration {マイグレーションファイル名}

# 例
php artisan make:migration create_users_table

ポイント

オプションで雛型を作成することができます。


# 新規作成の場合
php artisan make:migration create_users_table --create=users

# 更新の場合
php artisan make:migration add_address_to_users_table --table=users

マイグレーションのファイル名はわかりやすい名前にしましょう。

新規作成・・・create_***_table
更新・・・add_***_to_table

上記のコマンドを実行すると、プロジェクトルート以下の database/migrations にファイルが生成されます。

間違えた場合は?

テーブル名を間違えたり、オプションで雛型を作成するのを忘れた場合
1.自動生成されたマイグレーションファイルを削除
2.composer dump-autoload
3.もう一度作成

 

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

生成されたマイグレーションファイルを開くと以下のようになります。


<?php

use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreatePostsTable extends Migration
{
  public function up()
  {
  //
  }

  public function down()
  {
  //
  }
}

 
up()とdown()に記述していきます。

up()にはテーブルやカラムの定義を記述します。

down()にはロールバック処理を記述します。


public function up()
{
  // Schemaファサードで posts テーブルの作成
  Schema::create('users', function (Blueprint $table) {

  // カラムを作成していく
  $table->increments('id');
  $table->string('name');
  $table->string('email')->unique();
  $table->string('password');
  $table->rememberToken();
  $table->timestamps();
  });
}
public function down()
{
  // テーブル削除(ロールバック)
  Schema::drop('users');
}

 
カラムの作成については以下をご参考ください。

 

3)マイグレーション実行

マイグレーションファイルとはテーブルの設計書だと言いました。

設計書を作ったらそれを実行しなければテーブルは作成できません。

この実行にあたるのが「マイグレーション」になります。


php artisan migrate

 
これでデータベースにテーブルができます。

 
以上です。

 
Laravelのマイグレーションについてもっと理解を深めたい方は PHPフレームワーク Laravel入門 をお勧めします。

ポイント
マイグレーション関連の掲載ページ

Chapter 5 データベースの利用
5.1 データベースを準備する
5.2 DBクラスの利用
5.3 クエリビルダ
5.4 マイグレーションとシーディング

本庄マサノリ

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

>> Twitter をフォローする

 

-基礎知識