はじめに
Laravelの機能であるマイグレーション機能を使って、テーブル作成を行う方法を説明していきます。
作成の流れ
- コマンドでマイグレーションファイルを作成する
- マイグレーションファイルにフィールドを記述する
- マイグレーションコマンドを実行してテーブルを作る
1. マイグレーションファイル作成
コマンド実行後、 下記ディレクトリにマイグレーションファイルが作成される。
ファイル名のxxxxの箇所は、作成した日付が表示される。
(例:database/migrations/xxxx_xx_xx_xxxxxxx_create_testtable_table.php)
また、コマンドのファイル名の箇所は次のように名付ける。
ファイル名:create_テーブル名_table
php aritsan make:migration ファイル名
// 使用例 (テーブル名:testtable)
php artisan make:migration create_testtable_table
作成されたファイルには、下記コードが記述されている。
■ upメソッド
テーブルを生成するための処理を記述する。
デフォルトでは、プライマリキーであるidカラムとタイムスタンプの項目を追加するコードが作成さている。
■ downメソッド
テーブルを削除するための処理を記述する。デフォルトでは作成したテーブルが存在すれば、それを削除する処理が書かれる。
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('testtable', function (Blueprint $table) {
$table->bigIncrements('id');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('testtable');
}
};
2. マイグレーションファイルにフィールドを記述する
upメソッドの中に作成したいフィールドを定義していきます。
■ Schema::createについて
テーブル作成は、Schemaクラスのcreateメソッドを使って行う。
createは、第1引数にテーブル名、第2引数にはテーブルを作成するためのクロージャを書く。
作成するフィールド定義は、クロージャ内に書く。
フィールドの設定は、Blueprintクラスのメソッドが行っている。
public function up()
{
Schema::create('testtable', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->integer('math');
$table->integer('englixh');
$table->integer('science');
$table->timestamps();
});
}
3. マイグレーションコマンド実行
下記コマンドを実行すると、テーブルが作成されます。
php artisan migration
参考