(Laravel) DB【マイグレーションの解説】

laravel-migration

 

Laravelについてのメモ書き、
とくにマイグレーションについて

 

マイグレーションとは

PHPのスクリプトを使って、
データベースのテーブルをコマンドから作成、削除すること。

なぜこんなことをするかというと、
何らかの理由でDBの移行などをする際、DBの構造は移行元と移行先で、
一致している必要があるが、毎回一からDBを作成するのは大変なので、
DBの構造をスクリプトで管理しておくことで、作業の簡潔化と、ミスを防ぐことができる。

マイグレーションは、大まかに以下の工程が存在する

 

マイグレーションの工程
  1. マイグレーションファイルと呼ばれる、DBの作成、削除の情報を記述したファイルの作成
  2. マイグレーションファイルに基づいてマイグレーションを実行する

 

上記肯定について説明する

 

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

最初に、マイグレーションファイルの作成について

 

①マイグレーションファイルをコマンドで作成

マイグレーションファイルを以下のコマンドで作成する。

php artisan make:migration ファイル名

 

ファイル名は、どのような作業をするかわかるようなものにする
例えば「create_〇〇_table」など。

 

マイグレーションファイルの配置場所

作成したマイグレーションファイルは以下に格納される

database/migration/

 

マイグレーションファイルの一覧
Pasted Graphic 1.png

 

マイグレーションファイルのデフォルトの記述は以下

<?php

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

class CreatePeopleTable extends Migration
{

    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {

        Schema::create('people', function (Blueprint $table) {

            $table->bigIncrements('id');
            $table->timestamps();

        });

    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */

    public function down()
    {

        Schema::dropIfExists('people');

    }

}

 

upメソッドdownメソッドがある。

 

②upメソッドを記述する

マイグレーションファイルを作成したら、
作成したマイグレーションファイル内のupメソッドを記述する。
upメソッドは、テーブルを作成するための処理

Schemaクラスのcreateメソッドでテーブル作成の処理をする。

Schema::create('people', function (Blueprint $table) {
      $table->increments('id');
      $table->timestamps();
});

 

第一引数にはテーブル名(上記ではpeople)
第二引数には、引数にBlueprint $tableを引数にした、クロージャを記述する。

クロージャ内の記述方式は下記

$table->フィールドの型(‘フィールド名’);

 

フィールドの型名がメソッドになっており、フィールド名を引数に渡すことで
そのテーブルのフィールドが出来上がっていく。

 

③downメソッドを記述する

作成したマイグレーションファイル内のdownメソッドを記述する。
downメソッドは、テーブルを削除するための処理
Schemaクラスのdropメソッドか、dropIfExistsメソッドを使用する。
引数に指定したテーブルを削除する。

public function down(){

#どちらか片方を記述
     Schema::drop('people');
     Schema::dropIfExists('people');

}

 

マイグレーションを実行する

上記手順が済んだら、
下記コマンドで、作成したマイグレーションファイルに基づいたテーブルを作成する。

php artisan migrate

 

記事が気に入った方はシェアをお願いします!

コメントを残す

メールアドレスが公開されることはありません。