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

2022/06/17

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

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

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

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

 

方法

 
手順

 

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

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

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


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

# 例
php artisan make:migration create_users_table --create=users

【 更新の場合 】


# 更新の場合
php artisan make:migration add_column_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入門 第2版

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

Amazonで詳細を見る

オススメ

 

本庄マサノリ

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

>> Twitter をフォローする

 

-基礎知識