Laravelでアプリケーションを構築する際、データベースのテーブル定義をコードで管理できるマイグレーションは必須の技術です。


この記事では、以下の点をシンプルに解説します:

  • よく使うマイグレーションコマンド
  • 代表的なデータ型の記述例
  • 実際に生成されるファイル名の例

マイグレーションファイルの記述方法についても、「文字列ってどう書いたっけ?」と調べなくても済むように、必要な情報はなるべくこの1ページにまとめました


■環境: Laravel 12.3.0



1. ユーザー情報テーブルの作成

コマンド

php artisan make:migration create_users_table --create=users

生成されるファイル名(例)

database/migrations/2025_04_17_123456_create_users_table.php

中身の編集例(代表的なデータ型を含む)

public function up(): void
{
    Schema::create('users', function (Blueprint $table) {
        $table->id(); // 自動増分の主キー (bigint)
        $table->string('name'); // 文字列(varchar 255)
        $table->string('email')->unique(); // 一意制約つき文字列
        $table->text('profile'); // 長めのテキスト(TEXT)
        $table->boolean('is_active')->default(true); // 真偽値
        $table->integer('login_count')->default(0); // 整数
        $table->date('birthday')->nullable(); // 日付
        $table->timestamp('email_verified_at')->nullable(); // タイムスタンプ
        $table->rememberToken(); // remember_tokenカラム追加(nullable string)
        $table->timestamps(); // created_at / updated_at 自動生成
    });
}

このマイグレーションを実行することで、users テーブルが作成され、基本的なユーザー情報を扱えるようになります。


2. テーブルへのカラム追加

コマンド

php artisan make:migration add_profile_image_to_users_table --table=users

生成されるファイル名

database/migrations/2025_04_17_130000_add_profile_image_to_users_table.php

編集例

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

補足:必要に応じて外部キー制約なども追加可能です。


3. マイグレーションの実行とロールバック

実行(すべてのマイグレーション適用)

php artisan migrate

直近1つ分のマイグレーションだけ取り消す

php artisan migrate:rollback --step=1

4. 複数のテーブル追加の例

複数のテーブルを追加する場合も、--create オプションを使えば簡単です。

php artisan make:migration create_roles_table --create=roles
php artisan make:migration create_user_settings_table --create=user_settings

5. モデル補完を便利にするIDEヘルパー(オプション)

composer require --dev barryvdh/laravel-ide-helper
php artisan ide-helper:models --write

これでIDE(VSCodeなど)で $user->name のような補完が効くようになり、開発が快適になります。


代表的なデータ型早見表(記述例)

Laravelの型 用途例
$table->string('name') 通常の文字列(255文字)
$table->text('body') 長文テキスト(TEXT)
$table->boolean('flag') 真偽値(true/false)
$table->integer('count') 整数(INT)
$table->unsignedBigInteger() 正のID参照用
$table->date('birthday') 日付(DATE)
$table->timestamp() タイムスタンプ(日時)
$table->json('options') JSONデータ(MySQL5.7+)

まとめ

操作 コマンド例
テーブル作成 make:migration --create=users
カラム追加 make:migration --table=users
実行 php artisan migrate
ロールバック php artisan migrate:rollback --step=1
モデル補完 php artisan ide-helper:models --write

この内容をひと通り押さえておけば、Laravelでのマイグレーションは簡単かと思います。