カテゴリ: Laravel 更新日: 2025/11/12

Laravelでマイグレーションファイルを作成する方法を徹底解説!初心者でもわかるmake:migrationの使い方

Laravelでマイグレーションファイルを作成する方法(`make:migration`)
Laravelでマイグレーションファイルを作成する方法(`make:migration`)

先生と生徒の会話形式で理解しよう

生徒

「先生、Laravelでデータベースのテーブルを作るときって、どうやって設定するんですか?」

先生

「いい質問ですね。Laravelでは、マイグレーション(Migration)という仕組みを使って、データベースの構造をプログラムで管理できるんです。」

生徒

「プログラムでデータベースを作るんですか?SQLを手で書かなくてもいいんですか?」

先生

「その通りです!Laravelのmake:migrationコマンドを使えば、テーブルを作るためのファイルを自動で作成できます。それでは具体的に見ていきましょう!」

1. マイグレーションとは?

1. マイグレーションとは?
1. マイグレーションとは?

Laravelのマイグレーション(Migration)とは、データベースの構造(テーブルやカラムなど)をコードとして管理する仕組みのことです。これにより、データベースの変更をチーム全体で共有でき、開発環境や本番環境でも同じ構造を再現できます。

例えば、「usersテーブルを追加したい」「postsテーブルにカラムを1つ増やしたい」といったときに、SQL文を書かずにマイグレーションファイルを修正するだけで簡単に管理できます。

マイグレーションは、いわば「データベースの設計書」であり、「変更履歴」でもあります。過去の変更を追跡できるため、エラーが起きた場合でもすぐに前の状態に戻すことができます。

2. マイグレーションファイルの作成コマンド

2. マイグレーションファイルの作成コマンド
2. マイグレーションファイルの作成コマンド

マイグレーションファイルは、ターミナルで次のように入力して作成します。


php artisan make:migration create_users_table

このコマンドを実行すると、database/migrationsディレクトリの中に、新しいマイグレーションファイルが自動生成されます。

ファイル名の一例は次のようになります。


2025_10_17_000000_create_users_table.php

ファイル名の先頭には「作成日時」が付与されるため、マイグレーションの実行順序が自動で管理されます。

3. 作成されるファイルの構造を理解しよう

3. 作成されるファイルの構造を理解しよう
3. 作成されるファイルの構造を理解しよう

生成されたマイグレーションファイルを開くと、次のようなコードが含まれています。


<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

return new class extends Migration
{
    public function up(): void
    {
        Schema::create('users', function (Blueprint $table) {
            $table->id();
            $table->string('name');
            $table->string('email')->unique();
            $table->timestamps();
        });
    }

    public function down(): void
    {
        Schema::dropIfExists('users');
    }
};

up()メソッドでは、テーブルを作成する処理を書きます。上記の例では「users」テーブルを作成し、idnameemailtimestampsカラムを追加しています。

down()メソッドでは、マイグレーションを元に戻す処理(テーブルの削除など)を記述します。これにより、誤ってマイグレーションを実行しても安全にロールバックできます。

4. テーブル名とファイル名の関係

4. テーブル名とファイル名の関係
4. テーブル名とファイル名の関係

make:migrationコマンドの引数には、「create_テーブル名_table」という形式を使うのが一般的です。例えば、create_posts_tableと指定すると、自動的に「posts」テーブルを作成するテンプレートが生成されます。

この命名規則を守ることで、Laravelが自動的にテーブル名を認識し、Schema::create()部分をあらかじめ記述してくれます。

5. カラムを追加するマイグレーションを作る

5. カラムを追加するマイグレーションを作る
5. カラムを追加するマイグレーションを作る

既存のテーブルに新しいカラムを追加したい場合は、次のように作成します。


php artisan make:migration add_profile_to_users_table --table=users

--table=usersオプションを付けることで、「users」テーブルを編集するマイグレーションファイルが生成されます。

ファイルを開くと、Schema::table()メソッドを使ってカラムを追加できるようになっています。


public function up(): void
{
    Schema::table('users', function (Blueprint $table) {
        $table->string('profile')->nullable();
    });
}

6. 複数のマイグレーションを使い分けるコツ

6. 複数のマイグレーションを使い分けるコツ
6. 複数のマイグレーションを使い分けるコツ

Laravelのマイグレーションでは、1つのファイルにすべてのテーブルをまとめるのではなく、「1テーブル1ファイル」で管理するのがベストです。これにより、どの変更がどこで行われたかを簡単に把握でき、将来的な修正やチーム開発もスムーズになります。

また、マイグレーションファイルはバージョン管理(Gitなど)と組み合わせて利用することで、チーム全員が同じデータベース構造を再現できるという利点があります。

7. まとめ:make:migrationで効率的に開発しよう

7. まとめ:make:migrationで効率的に開発しよう
7. まとめ:make:migrationで効率的に開発しよう

make:migrationコマンドを活用すれば、SQLの知識がなくてもLaravel内で簡単にデータベース設計ができます。データベースの変更もコードとして管理できるため、安心して試行錯誤できるのが大きな魅力です。

Laravelを使った開発では、マイグレーションを正しく使いこなすことが、効率的で安全なデータベース管理の第一歩です。

カテゴリの一覧へ
新着記事
New1
Laravel
Laravelの認証状態をチェックする方法を完全解説!authとAuth::check()を初心者向けにやさしく説明
New2
CodeIgniter
CodeIgniterのコントローラクラスの作り方を完全ガイド!初心者でもわかる基礎から実践まで
New3
Symfony
Symfonyのフォームラベルを多言語対応!初心者でもわかる翻訳設定ガイド
New4
Laravel
Laravelでユーザー登録機能を作る方法!初心者向けにバリデーションとリダイレクトをやさしく解説
人気記事
No.1
Java&Spring記事人気No1
Laravel
Laravelのデータベース設定方法を完全ガイド!初心者でもわかる.envファイルの使い方
No.2
Java&Spring記事人気No2
Laravel
Laravelのビューとは?Bladeテンプレートの基本を解説
No.3
Java&Spring記事人気No3
Laravel
Laravelでセッションを扱う方法!保存方法と利用例を解説
No.4
Java&Spring記事人気No4
Laravel
Laravelのルート一覧を確認する方法!初心者でもわかるphp artisan route:listの使い方
No.5
Java&Spring記事人気No5
Laravel
Laravelでルーティングを設定する方法!web.phpと基本ルートの書き方を初心者向けに徹底解説
No.6
Java&Spring記事人気No6
Laravel
Laravelでログを出力する方法(Monolog・storage/logs)
No.7
Java&Spring記事人気No7
Laravel
Laravelのルートキャッシュ機能を活用してパフォーマンス改善!初心者でもわかる完全ガイド
No.8
Java&Spring記事人気No8
Laravel
LaravelでルートをBladeテンプレートに記述する方法(route関数)