【Laravel】DB(データベース)のテーブル作成方法

※本サイトはアフィリエイトリンクを掲載しています。
Laravel

Laravelでは、データベースのバージョン管理が行える「マイグレーション」という機能があります。

マイグレーションはデータベースのテーブルの作成・削除などができます。

今回はそのマイグレーションを利用し、新しいテーブルを作成する方法を紹介します。

 

マイグレーションでDBに新規テーブルを作成する

作成方法の流れは下記です。

1.マイグレーションファイルを作成する。

2.マイグレーションファイルを編集し、作成テーブルの設定をおこなう。

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

 

1.マイグレーションファイルを作成する。

テーブル作成する処理を記載する、マイグレーションファイルを作成します。

まず、マイグレーションファイル作成用のコマンドをうちます。

コマンドは2パターンあります。

 

コマンド1

php artisan make:migration create_テーブル名_table

ファイル名が「create_テーブル名_table」のマイグレーションファイルが作成されます。

 

コマンド2

php artisan make:migration ファイル名 --create=テーブル名

このコマンド1とコマンド2は、どちらで実行しても良いです。

 

では例として、members(会員)テーブルを作成します。

php artisan make:migration create_members_table

 

Laravelの命名規則でテーブル名は複数形にする必要があります。
今回の会員テーブルの命名はmembersとなります。

 

コマンド実行結果キャプチャ

これでマイグレーションファイル作成が完了しました。

続いてマイグレーションファイルの編集をします。

 

2.マイグレーションファイルを編集し、作成テーブルの設定をおこなう。

マイグレーションファイルを作成した初期状態で、下記のソースコードのようになっています。

<?php

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

class CreateMembersTable extends Migration
{
    /**
    * Run the migrations.
    *
    * @return void
    */
    public function up()
    {
        Schema::create('members', function (Blueprint $table) {
            $table->id();
            $table->timestamps();
        });
    }

    /**
    * Reverse the migrations.
    *
    * @return void
    */
    public function down()
    {
        Schema::dropIfExists('members');
    }
}

こちらを編集します。

この状態でもテーブルは作成できますが、カラムを追加したい場合は必要に応じて追加します。

今回は例として「nameカラム」と「addressカラム」と「tel」カラムを追加します。

<?php

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

class CreateMembersTable extends Migration
{
    /**
    * Run the migrations.
    *
    * @return void
    */
    public function up()
    {
        Schema::create('members', function (Blueprint $table) {
            $table->id();
       $table->string('name')->comment('名前');
            $table->string('address')->comment('住所');
            $table->string('tel')->comment('電話番号');
            $table->timestamps();
        });
    }

    /**
    * Reverse the migrations.
    *
    * @return void
    */
    public function down()
    {
        Schema::dropIfExists('members');
    }
}

これでマイグレーションファイル修正は完了しました。

カラム追加の記載は他にも数パターンあります。

続いてマイグレーション実行をおこないます。

 

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

先ほど編集した、マイグレーションファイルのソースコードを実行するコマンドをうちます。

php artisan migrate

マイグレーションが実行され、テーブルを作成することができます。

 

マイグレーション実行キャプチャ

DB閲覧ツールキャプチャ

 

補足:マイグレーションファイルの構成について

マイグレーションファイルにはupメソッドとdownメソッドがあります。

 

upメソッド

upメソッドは、マイグレーション実行する処理となります。

今回の記事では、テーブル作成した処理が該当します。

upメソッド内では、Schemaファサードのcreateメソッドでテーブル作成処理を実行します。

createメソッドの第1引数にはテーブルを名を指定します。

マイグレーションファイル作成時のコマンド「create_テーブル名_table」を実行することで、自動的にcreateメソッドの第1引数のテーブル名が反映されます。

 

downメソッド

downメソッドは、1度マイグレーション実行したものを元に戻す処理となります。

テーブル作成処理がupメソッドにある場合は、テーブル削除の処理が記載される形になります。

元に戻す処理をロールバックと呼びます。

以下がロールバック実行コマンドになります。

php artisan migrate:rollback

こちらでdownメソッドが実行され、upメソッドで作成したテーブルを削除します。

 

モデル作成について

LaravelでDB(データベース)のテーブル作成をしたら、関連して必要になるファイルが「モデル」ファイルです。

モデルファイルには、データベースの対象テーブルのデータ操作について記載します。

詳しくは、下記の記事で紹介しております。

【Laravel】Model(モデル)の作成方法とModel(モデル)に何を書くかを考える

 

コメント