From 0e010252f93f67018f4b189c282483c7ab3833e1 Mon Sep 17 00:00:00 2001 From: "waffle.lord" Date: Mon, 26 Aug 2024 12:39:19 -0400 Subject: [PATCH] add some basic logging to database seeding --- database/seeders/DatabaseSeeder.php | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php index 1cfedfb..28d487b 100644 --- a/database/seeders/DatabaseSeeder.php +++ b/database/seeders/DatabaseSeeder.php @@ -10,6 +10,8 @@ use App\Models\SptVersion; use App\Models\User; use App\Models\UserRole; use Illuminate\Database\Seeder; +use Symfony\Component\Console\Helper\ProgressBar; +use Symfony\Component\Console\Output\ConsoleOutput; class DatabaseSeeder extends Seeder { @@ -29,6 +31,16 @@ class DatabaseSeeder extends Seeder User::factory()->for($administrator, 'role')->create([ 'email' => 'test@example.com', ]); + + $this->command->outputComponents()->info('test account created: test@example.com'); + + $progress = $this->command->getOutput()->createProgressBar(5); + $progress->setFormat("%message%\n %current%/%max% [%bar%] %percent:3s%%"); + $progress->setMessage("starting ..."); + + $progress->start(); + + $progress->setMessage('adding users ...'); User::factory(4)->for($administrator, 'role')->create(); // Add 10 moderators. @@ -37,19 +49,27 @@ class DatabaseSeeder extends Seeder // Add 100 users. $users = User::factory(100)->create(); + $progress->advance(); + + // Add 300 mods, assigning them to the users we just created. + $progress->setMessage('adding mods ...'); $allUsers = $users->merge([$administrator, $moderator]); $mods = Mod::factory(300)->recycle([$licenses])->create(); foreach ($mods as $mod) { $userIds = $allUsers->random(rand(1, 3))->pluck('id')->toArray(); $mod->users()->attach($userIds); } + $progress->advance(); // Add 3000 mod versions, assigning them to the mods we just created. + $progress->setMessage('adding mod versions ...'); $modVersions = ModVersion::factory(3000)->recycle([$mods, $spt_versions])->create(); + $progress->advance(); // Add ModDependencies to a subset of ModVersions. + $progress->setMessage('adding mod dependencies ...'); foreach ($modVersions as $modVersion) { $hasDependencies = rand(0, 100) < 30; // 30% chance to have dependencies if ($hasDependencies) { @@ -59,5 +79,9 @@ class DatabaseSeeder extends Seeder } } } + $progress->advance(); + $progress->finish(); + $this->command->info(''); + $this->command->outputComponents()->success('Database seeded'); } }