LoginSignup
0
0

More than 1 year has passed since last update.

Laravel(7.x) Database:seeding 個人的まとめ

Posted at

基本的なシーダーファイル作成コマンド

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
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0