概要
マイグレーション機能を使って、テーブルを作成していきます。
実践
マイグレーションファイルの作成
以下のように、実行するとマイグレーションファイルが作成します。
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
上記コマンドで、マイグレーション実行され、テーブルが作成されます。
以上で、マイグレーション完了になります。