スポンサーリンク

[Laravel] マイグレーションでテーブル作成する

概要

マイグレーション機能を使って、テーブルを作成していきます。

実践

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

以下のように、実行するとマイグレーションファイルが作成します。
employeesの部分がテーブル名です。テーブル名は複数系にするように命名規則で決められています。

php artisan make:migration create_employees_table --create=employees

実行すると、以下のようにデフォルト設定されたマイグレーションファイルが
database\migrationsに作成されます。
※デフォルトで存在しているマイグレーションファイルは、別用途で使われています。

<?php

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

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

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

マイグレーションファイルには、upメソッドとdownメソッドが用意されています。
upメソッドには、マイグレーション実行したときに動く処理で、テーブル定義などの処理を記載します。
downメソッドは、マイグレーションの巻き戻し実行の時に動く処理で、upメソッドに作成したテーブルの削除などを行います。

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

        Schema::create('employees', function (Blueprint $table) {
            $table->id();
            $table->string('name');
            $table->integer('age');
            $table->timestamps();
        });

赤字個所を追記して、nameカラム(string型),ageカラム(integer型)を追加しました。
デフォルトの $table->id() は、オートインクリメントのプライマリキーが設定され、
$table->timestamps()はcreate_atとupdate_atのカラムが追加されます。

downメソッドのSchema::dropIfExists(‘employees’)は、デフォルトのままで、テーブルが存在したらテーブルを削除処理を行います。

マイグレーションの実行

php artisan migrate

上記コマンドで、マイグレーション実行され、テーブルが作成されます。
以上で、マイグレーション完了になります。