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

Laravelで特定のSeederだけ実行する方法!db:seed --class=で必要なデータだけ登録

Laravelで特定のSeederのみ実行する方法(`db:seed --class=`)
Laravelで特定のSeederのみ実行する方法(`db:seed --class=`)

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

生徒

「先生、Laravelで全部のSeederじゃなくて、特定のSeederだけ実行することってできますか?」

先生

「できますよ。それにはdb:seedコマンドの--class=オプションを使います。」

生徒

「具体的にどうやって使うんですか?」

先生

「コマンドに実行したいSeederのクラス名を指定するだけです。必要なデータだけ登録できるので便利です。」

1. 特定のSeederだけ実行するメリット

1. 特定のSeederだけ実行するメリット
1. 特定のSeederだけ実行するメリット

Laravelでは通常、DatabaseSeederにまとめられた複数のSeederをdb:seedで一括実行します。しかし開発中やテスト中に、特定のテーブルだけデータを更新したい場合があります。そんなとき--class=Seeder名を使うと、指定したSeederだけ実行でき、効率よくデータを管理できます。

例えば、ユーザー情報だけ更新したい場合に、記事情報やコメント情報まで再生成する必要はありません。必要な部分だけ実行できるので時間も節約できます。

2. Seederクラスを作成する

2. Seederクラスを作成する
2. Seederクラスを作成する

まずはSeederクラスを作成します。ターミナルで次のコマンドを実行します。


php artisan make:seeder UsersTableSeeder

作成されるUsersTableSeeder.phpdatabase/seedersフォルダ内に生成されます。run()メソッドにデータ登録処理を書きます。


use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Str;

class UsersTableSeeder extends Seeder
{
    public function run(): void
    {
        DB::table('users')->insert([
            'name' => 'テストユーザー',
            'email' => 'test@example.com',
            'password' => bcrypt('password'),
        ]);
    }
}

3. 特定のSeederだけ実行する方法

3. 特定のSeederだけ実行する方法
3. 特定のSeederだけ実行する方法

作成したSeederを個別に実行するには、次のコマンドを使います。


php artisan db:seed --class=UsersTableSeeder

このコマンドを実行すると、UsersTableSeederだけが実行され、ユーザー情報がテーブルに登録されます。ほかのSeederは実行されません。

4. 実行手順のイメージ

4. 実行手順のイメージ
4. 実行手順のイメージ

手順をまとめると次の通りです。

  1. Seederを作成する(php artisan make:seeder
  2. run()メソッドにデータ登録処理を記述する
  3. php artisan db:seed --class=Seeder名で特定のSeederを実行

これで必要なデータだけを素早く登録でき、開発やテストが効率化されます。

5. 注意点

5. 注意点
5. 注意点

--class=Seeder名を使う場合、Seederクラス名を正しく指定する必要があります。名前が間違っているとエラーになります。また、既存のデータを上書きしたくない場合は、insertの前にデータが存在するか確認する処理を追加すると安心です。

特定のSeederだけ実行する方法は、開発環境やテスト環境で効率よくデータ管理するための基本テクニックとして覚えておきましょう。

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