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

2019/07/16

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

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

 
以上です。

 

PHPフレームワーク Laravel入門

僕がはじめてLaravelを学習するために参考にしたサイトは、掌田津耶乃(しょうだつやの)さんの libro というサイトです。当時(2016年)、Laravel学習サイトの中でもこのサイトは群を抜いてわかりやすく説明されていたので、とても勉強になったのを覚えています。この本は掌田津耶乃が書いた本なので、わかりやすく解説されているだろうと kindle で購入しました。2019年7月の時点でいうと日本国内にて唯一の Laravel の良書と言っても良いかと思います。しかし、かなりわかりやすく解説されているとはいえ、PHP中級者以上のスキルは必要です。PHP自体の知識が乏しい方は独習PHP 第3版をあわせて購入することをお勧めします。

Amazonで詳細を見る

オススメ

 

本庄マサノリ

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

 

-基礎知識