Laravelについてのメモ書き、
とくにマイグレーションについて
マイグレーション実施手順
マイグレーションを実施する手順は以下。
- マイグレーションファイルの作成
- マイグレーション実行
①マイグレーションファイルの作成
最初に、マイグレーションファイルの作成について説明していく
マイグレーションファイルをコマンドで作成
マイグレーションファイルを以下のコマンドで作成する。
php artisan make:migration ファイル名
ファイル名は、どのような作業をするかわかるようなものにする。
例えば「create_〇〇_table」など。
作成したマイグレーションファイルは以下に格納される
database/migration/
マイグレーションファイルの一覧(database/migration)
|
マイグレーションファイルのデフォルトの記述は以下
<?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メソッドはテーブル作成の定義を記述するメソッド、
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
upメソッドに記述した定義に基づいて、テーブルが作成される。
(参考) マイグレーションをやり直したい場合
マイグレーションをやり直したい場合のコマンドも各種用意されている。
以下の記事で詳しく紹介しているので、参考に。
マイグレーションまとめ
Laravelのマイグレーションとは、
PHPのスクリプトを使って、データベースのテーブルをコマンドから作成、削除すること。
マイグレーションは以下の手順で実施する
- マイグレーションファイルの作成
- マイグレーション実行
マイグレーションは、DBの定義をファイルで管理しておくが、そのメリットは以下
何らかの理由でDBの移行などをする際、DBの構造は移行元と移行先で、
一致している必要があるが、毎回一からDBを作成するのは大変なので、
DBの構造をスクリプトで管理しておくことで、作業の簡潔化と、ミスを防ぐことができる。