【Laravel】Seederとfactoryでダミーデータを生成してみる!

Pocket

Laravelで開発する際、ローカル環境にテスト用のダミーデータを作りたい時があります。

そんな時はSeeder機能でダミーデータを作ることができます。

 

また、Seederは1個ずつテストデータを作成していく煩わしさがありますが、一気に大量にダミーデータを作りたい時はFactoryという機能を使用できるので合わせて解説していきます!

*今回はusersテーブルとusermodelファイルが事前に準備されている前提で解説します!

 

SeederとFactoryについて

 

SeederファイルとFactoryファイルはローカル環境開発で必ず使用するスキルですので、初学者はマスターしちゃいましょう。

 

Seederについて

SeederクラスはダミーデータをDBに一括で保存する仕組みのことです。

例えば、以下のようにLaravelプロジェクト直下のdatabase/seeds/フォルダ内のSeederファイルに任意のダミーデータを作ることができます。

ここではusersテーブルに

name:山田、

メール:Yamada@gmail.com、

パスワード:yamada2019

というデータを作成します。

 

Seedingについては、無数にこのようなダミーデータを作成することができます!

でも、毎回このように自分でカラム名などをランダムに設定するのって面倒ですよね?

そんなときにFactoryの機能を使いましょう!

 

Factoryについて

Factoryは大量のテスト用データをDBに生成することができます!

Factoryファイルに以下のように記述します。

$faker->name:山田太郎、佐藤花子などの存在しそうな名前をランダムに生成

$faker->unique()->safeEmail:Yamada@gmail.comなどのランダムかつユニークなデータを生成

Hash::make(‘test’):ハッシュ化されたパスワードを生成

 

Seederファイルを生成してみる!

 

では、実際にSeederファイルを生成してみましょう!

 Artisanコマンドでファイルを生成
 

これで、Laravelプロジェクト/database/Seedsディレクトリ内にUsersTableSeederファイルが生成されます!

デフォルトではこんな感じのファイルが出来上がります!

ここから追加実装していきます!

 

Seederファイルの編集はここまでで、次はFactoryファイルを編集します!

ちなみにここでは、Factoryファイルで指定したダミーデータを50件作りますよという処理を書いています。

 

Factoryファイルを生成する

 

ではFactoryファイルを生成しましょう!

Factoryファイルはlaravelプロジェクト配下のdatabase/factoriesディレクトリ内に配置します。

Factoryファイルを作成する特定のコマンドはないので、自分で作りましょう!

 

これで、ランダムなname、email、passwordが50件生成されます!

Factoryファイルの設定は簡単ですね。

 

Seederを実行する!

 

SeederファイルとFactoryファイルを編集すれば、あとはSeederを実行するだけです。

App/database/seeds/DatabaseSeeder.phpに実行したいSederファイルを追加します。

オートローダーを再生成する

以下を実行します。

忘れがちですが、追加したSeederがある場合は必ず実行する必要のあるコマンドです。

Seederを実行

これでSeederファイルが実行されます。

 

未経験から現場に入れば、テストを担当する機会が多いと思います。

是非、テスト用にダミーデータの生成方法を覚えちゃいましょう!

 

今回はここまでにします!

コメントを残す

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

CAPTCHA