見出し画像

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

今回はLaravelで勉強したテーブル作成についてまとめます。

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

マイグレーションファイルとはテーブル定義に対する変更内容が書かれているファイル

//booksというテーブルを作成します
$php artisan make:migration create_books_table --create=books

Migrationクラスを継承したCreateBookTableクラスが自動で作成される

<php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateUsersTable extends Migration
{
/**
    * Run the migrations.
    *
    * @return void
    */
   public function up()
   {
       Schema::create('books', function (Blueprint $table) {
           $table->increments('id');
$table->timestamps();
       });
   }
   /**
    * Reverse the migrations.
    *
    * @return void
    */
   public function down()
   {
       Schema::dropIfExists('books');
}

make:migrationした時に指定した名前がキャメルケースに変換されクラス名になります。
マイグレーションファイルはup()メソッドとdown()メソッドを持っていて
up()メソッドの中のSchema::createはテーブル作成処理が、
down()メソッドの中のSchema::dropifExistsはテーブルの削除処理が入っています。

public function up()
   {
       Schema::create('books', function (Blueprint $table) {
           $table->increments('id');
$table->string(‘bookName’);
$table->string(‘bookNameKana’);
$table->string(‘authorName’);
$table->timestamps();
       });
   }

今回は本の名前、カナ、著者名のカラムを追加しました。

マイグレーションを実行

$php artisan migrate

DBに対してDDLを発行します。
コマンドが成功すると、指定したテーブルとmigrationsという2つのテーブルが作成されます。

※注意
マイグレーションファイルを実行した後にファイルを変更し、実行しても
修正することはできません。間違えた場合はロールバックを行なって変更や修正を行います。

ロールバック

ロールバックとはマイグレーションの内容を元に戻すことです。
マイグレーションを実行した時に間違えてしまった…っという時は
ロールバックを行い1度テーブルをdropして新しいテーブルを作成します。

//直近のマイグレーションのdownメソッドを実行する
$php artisan migrate:rollback

マイグレーションでテーブルを変更する方法

マイグレーションでテーブルを変更する方法は2種類あります。
①ロールバックを行いマイグレーションファイルに項目を追加してから、再度マイグレーションを実行する。
②項目追加用のマイグレーションファイルを作成しマイグレーションを実行する。

今回は深く記述しませんが(私がまだきちんと理解できていない…)
②の方法で行う時のファイル作成のコマンドはこちらになります

$php artisan make:migration add_publised_at_to_books_table --table=books

ご覧いただきありがとうございました。


この記事が気に入ったらサポートをしてみませんか?