基本的なシーダーファイル作成コマンド
php artisan make:seeder UserSeeder
ファクトリーを使用する
50人分ユーザーを作成し、それぞれにリレーションをアタッチします。
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
factory(App\User::class, 50)->create()->each(function ($user) {
$user->posts()->save(factory(App\Post::class)->make());
});
}
追加のシーダーを呼び出す
簡潔に書けて、簡単に呼び出せます。
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
$this->call([
UserSeeder::class,
PostSeeder::class,
CommentSeeder::class,
]);
}
シーダーを走らせる
シーダーを作成したら、dump-autoloadコマンドを実行して、Composerのオートローダーを再生成する必要がある場合があります。
composer dump-autoload
デフォルトでは、db:seedでDatabaseClassのrunが実行されますが --classオプションで、個別にシーダーを走らせることもできます。
php artisan db:seed
php artisan db:seed --class=UserSeeder
このコマンドは全てのテーブルをドロップし、マイグレーションを行うので、完全にデータベースを再構築したい際に役立ちます。
php artisan migrate:fresh --seed
本番環境で強制的にseedするためのコマンド
--forceフラッグをつける
php artisan db:seed --force