search
LoginSignup
0

posted at

[Laravel6] ざっくりSeederを使う

ターミナル

php artisan make:seeder 〇〇
  • database\seeds\〇〇が作成される

Seeds

public function run()
    {
        DB::table('users')->insert([
            'name' => Str::random(10),
            'email' => Str::random(10) . '@gmail.com',
            'password' => Hash::make('password'),
        ]);
    }

DatebaseSeeder

public function run()
    {
        $this->call(UsersTableSeeder::class);
    }
  • DBSeederは必ず存在している+作成したSeederが最初はコメントアウトされている
    • ここから個々のSeederを呼び出して実行する仕組みになっているので、コメントアウトを外しておく

ターミナル

composer dump-autoload

php artisan db:seed
  • Seederクラスを書き上げたら、Composerのオートローダを再生成する必要がある
    • composer.jsonのautoloadにdatabase/seeds,factoryの記述があるため、書き換えの際に再生成する必要が出てくる
  • もし2つ目のコマンドが効かなかったら、生成したデータと既に存在しているデータでコンフリクトが起こっている可能性がある
    • php artisan migrate:refresh —seed でマイグレートのリフレッシュとシーディングを同時に行うことができ、問題が解決する

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
What you can do with signing up
0