【Laravel】マイグレーションを使ってみる

~簡単な自己紹介~

  • 嫁と猫3匹と暮らすフルリモートの三十路SE
  • ブリッジSE的なポジションを務めることが多く、チーム運営、顧客折衝、ベンダーコントロールが得意
  • 投資・節約・副業で資産形成中
  • 現在の金融資産は約1,650万円、めざせアッパーマス層(資産3,000万円)

マイグレーションとは、稼働中のシステムやデータに影響を与えないように、テーブル追加・変更・削除などを行うことをいいます。

稼働中ではなくても、コマンドを1つ実行するだけでDBの構築ができるため、複数人で開発を行う際にそれぞれのローカル環境の構築がスムーズになります。

開発環境

  • OS:Windows11
  • Docker Desktopインストール済み
  • VSCodeインストール済み

前提

  • Docker上のappコンテナにLaravelがインストールされている
  • Docker上のdbコンテナにMySQLがインストールされている

詳細な環境は下記の記事をご参照ください。

今回はDocker環境で実施しますが、ローカルに直接インストールしている方も参考になると思います。

マイグレーションファイルを作成する

ターミナルを表示する

メニューの表示から、ターミナルを開きます。

ショートカットキーはCtrl + @なので、覚えておくと便利です。

appコンテナに入る

下記のコマンドを実行して、appコンテナに入ります。

docker compose exec app bash

コマンドでマイグレーションファイルを作成する

下記のコマンドを実行して、マイグレーションファイルを作成します。

php artisan make:migration m_department

コマンドが成功すると、yyyy_mm_dd_hhmmss_m_department.phpという名前のファイル名が生成されます。

ちなみに、マイグレーションファイルはテーブルごとに分ける流派と、一つのファイルに複数のテーブルを記載する流派があります。

後者の場合はファイル名もそれっぽく変えてあげましょう。

なお、デフォルトで以下の4ファイルが最初から用意されていますが、削除しても問題ありません。

  • 2014_10_12_000000_create_users_table.php
  • 2014_10_12_100000_create_password_resets_table.php
  • 2019_08_19_000000_create_failed_jobs_table.php
  • 2019_12_14_000001_create_personal_access_tokens_table.php

マイグレーションファイルを編集する

2か所にコードを記載します。

①upメソッド

記載する内容はLaravel風のCREATE TABLEです。

Schema::create("m_department", function (Blueprint $table) {
    $table->increments("id");
    $table->string("name");
});

②downメソッド

ロールバック時に呼ばれるメソッドです。

Schema::dropIfExists("m_department");

マイグレーションを実行する

マイグレーションを実行する

下記のコマンドを実行して、マイグレーションを実行します。

php artisan migrate

対象のファイルがDONEになっていればOKです。

マイグレーションの実行状況を確認する

下記のコマンドを実行して、マイグレーションの実行状況を確認します。

php artisan migrate:status

対象のマイグレーションがRanになっていればOKです。

テーブルが作成されているか確認する

DBビューアーでテーブルが作成されていることを確認します。

テーブル名、カラム名、データ型などが意図したとおりに作成されていると思います。

コマンドで確認しても大丈夫ですが、私はMySQL Workbenchを使っています。

以上になります。

お疲れさまでした。

Follow me!

【Laravel】マイグレーションを使ってみる” に対して1件のコメントがあります。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です