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

Laravelでマイグレーションを使ってテーブルを作成する方法

Laravelでマイグレーションを使ってテーブルを作成する方法
Laravelでマイグレーションを使ってテーブルを作成する方法

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

生徒

「Laravelでデータベースのテーブルを作るにはどうすればいいですか?」

先生

「Laravelでは“マイグレーション”という仕組みを使って、テーブルを簡単に作成・管理することができますよ。」

生徒

「マイグレーションって何ですか?難しそうです……」

先生

「心配いりません。ゆっくりひとつずつ見ていきましょう。例え話を交えて解説しますね。」

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

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

マイグレーション(Migration)とは、Laravelでデータベースの構造(テーブルやカラムなど)をコードで管理する仕組みです。たとえば、Excelで表を作るように、データベースでも「名前」「年齢」「メールアドレス」などの列(カラム)を持つ表(テーブル)を作ります。これをLaravelでは、PHPファイルとして記述することで再利用や修正がしやすくなるのです。

マイグレーションを使えば、「いつ・誰が・どんなテーブルを作ったか」もコードで残るため、作業のミスが減ります。

2. マイグレーションファイルを作る

2. マイグレーションファイルを作る
2. マイグレーションファイルを作る

まずはマイグレーションファイルを作ります。Laravelでは、コマンドでファイルを作成します。

パソコンの「コマンドプロンプト」や「ターミナル」と呼ばれる黒い画面に、以下のように入力してください。


php artisan make:migration create_users_table

このコマンドは、「users」という名前のテーブルを作成するためのマイグレーションファイルを生成するものです。

3. マイグレーションファイルの構成

3. マイグレーションファイルの構成
3. マイグレーションファイルの構成

作成されたファイルは、database/migrationsフォルダの中に保存されています。ファイル名の先頭には日時が自動で付いています。

ファイルを開くと、up()メソッドとdown()メソッドがあります。

  • upメソッド:テーブルを作成したり、カラムを追加したりします。
  • downメソッド:逆にテーブルを削除する処理を記述します。

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

この例では、「users」テーブルに「id」「name」「email」「created_at」「updated_at」のカラムを作成しています。

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

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

マイグレーションファイルを作成しただけでは、データベースにまだテーブルは作られていません。実際にデータベースに反映させるには、次のコマンドを実行します。


php artisan migrate

このコマンドを実行すると、マイグレーションファイルに書かれた内容がデータベースに反映され、テーブルが作成されます。

5. テーブルの修正をしたいときは?

5. テーブルの修正をしたいときは?
5. テーブルの修正をしたいときは?

たとえば、「users」テーブルに「年齢」カラムを追加したいときは、新しいマイグレーションファイルを作成して、そこに変更内容を記述します。


php artisan make:migration add_age_to_users_table

ファイルの中に、以下のようにカラムの追加処理を記述します。


public function up()
{
    Schema::table('users', function (Blueprint $table) {
        $table->integer('age');
    });
}

そして再度、php artisan migrateを実行すると、カラムが追加されます。

6. マイグレーションを取り消したいとき

6. マイグレーションを取り消したいとき
6. マイグレーションを取り消したいとき

マイグレーションを取り消すには、次のコマンドを使います。


php artisan migrate:rollback

このコマンドを実行すると、downメソッドに書かれた処理が実行されて、テーブルが削除されます。誤って作成してしまった場合などに便利です。

まとめ

まとめ
まとめ

Laravelのマイグレーションは、データベースのテーブルやカラムをコードで管理できるとても便利な仕組みであり、学べば学ぶほどその価値が実感できる技術です。マイグレーションを活用することで、従来のように直接データベースソフトを操作してテーブルを作り直したり、設定を手動で変更したりする必要がなくなり、開発作業が整然として再現性の高いものになります。また、複数人で同じプロジェクトを進める場合にも、テーブル構造をコードで共有できるため、チーム全体が同じ環境で作業でき、環境差による不具合が大幅に減少します。誰が、いつ、どのような変更を行ったのか履歴として追える点も魅力で、プロジェクトが大規模になるほど威力を発揮します。 マイグレーションの基本となるup()down()メソッドは、とても分かりやすい役割分担を持っています。up()には「テーブルを作る」「カラムを追加する」といった追加系の処理を書き、down()には「テーブルを消す」「カラムを消す」といった取り消し処理を書きます。この仕組みにより、誤った変更を行ってしまった場合でも、マイグレーションを取り消すだけで簡単に元の状態に戻すことができます。また、テーブルの修正を行いたい時は新しいマイグレーションファイルを作成するという明確なルールがあるため、無秩序な設定変更が起こりにくく、プロジェクトの品質が保たれます。 実際の作業手順としては、まずコマンドでマイグレーションファイルを生成し、ファイル内にテーブルの構造を記述します。そしてphp artisan migrateコマンドを実行することで、データベースにその内容が反映されます。テーブルの中にどんなカラムを作るのか、どんな制約をつけるのかはすべてコードに記述できるため、読み返すだけでデータ構造の全体像が把握できるようになります。さらに、Laravelが提供するBlueprintクラスの豊富なメソッドを使えば、文字列・数値・日時・ユニーク制約・外部キー制約など、あらゆるカラムの設定を簡潔に書くことができます。 また、マイグレーションは単にテーブルを作るだけではなく、アプリケーションの構造を見直す際にも役立ちます。たとえば、ユーザー管理・商品管理・予約システムなど、さまざまなデータ構造が登場するアプリケーションでは、途中でカラムを追加したくなることがよくあります。そのたびに新しいマイグレーションを作成し、php artisan migrateで反映させればよく、既存のデータはそのまま保たれます。「年齢を追加したい」「住所を分割したい」「ステータスのカラムが必要になった」などの仕様変更にも柔軟に対応できる点は、マイグレーションの大きな強みです。 大規模開発や長期間の運用でも安心して利用できるよう設計されているLaravelのマイグレーションは、習得することでプロジェクト全体の品質向上につながり、より効率的で管理しやすいアプリケーション開発を実現できます。以下には、基本的なマイグレーション構造を振り返りとしてまとめたサンプルコードを掲載しますので、学んだ内容と照らし合わせながら復習に役立ててください。

サンプルプログラム(振り返り用)


<?php

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

return new class extends Migration
{
    public function up()
    {
        Schema::create('books', function (Blueprint $table) {
            $table->id();                     // 主キー
            $table->string('title');          // 本のタイトル
            $table->string('author');         // 著者名
            $table->integer('price');         // 本の価格
            $table->timestamps();             // created_at、updated_at
        });
    }

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

この例では「books」というテーブルを作成し、本の情報を管理できる構造を定義しています。マイグレーションによってテーブル設計をコード化することで、後から見返してもどんな構造だったのかすぐに理解でき、修正もしやすくなります。Laravelのマイグレーションは、開発をスムーズにし、データベース管理の負担を大幅に軽減してくれる非常に頼もしい仕組みです。

先生と生徒の振り返り会話

生徒

「先生、マイグレーションって最初は複雑そうに感じたけれど、コードでテーブルを管理できるなんてすごく便利ですね!」

先生

「そうですね。マイグレーションを使えばデータベースの操作が統一されて、どんな環境でも同じ状態を作れるようになります。開発効率も大きく上がりますよ。」

生徒

「特にphp artisan migrateでテーブルが一気に作られるところが感動しました!修正したくなったときに別ファイルで追加できるのも便利です。」

先生

「その通りです。テーブルの追加や修正もマイグレーションで行えば履歴として残るので、変更内容が把握しやすくなります。」

生徒

「データベースの管理がこんなに整理されるなんて知らなかったです!次は外部キーやインデックスの追加にも挑戦してみたいです!」

先生

「いいですね。Laravelのマイグレーション機能はさらに奥が深いので、ぜひ応用的な部分も学んでみてください。」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

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のルートキャッシュ機能を活用してパフォーマンス改善!初心者でもわかる完全ガイド
No.7
Java&Spring記事人気No7
Laravel
Laravelでログを出力する方法(Monolog・storage/logs)
No.8
Java&Spring記事人気No8
Laravel
LaravelでルートをBladeテンプレートに記述する方法(route関数)