Skip to content

Commit 889f66b

Browse files
committed
Add custom seeder setup
1 parent 5da88ed commit 889f66b

File tree

5 files changed

+106
-8
lines changed

5 files changed

+106
-8
lines changed

database/seeders/DatabaseSeeder.php

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@
22

33
namespace Database\Seeders;
44

5-
use App\Models\User;
6-
// use Illuminate\Database\Console\Seeds\WithoutModelEvents;
75
use Illuminate\Database\Seeder;
86

97
class DatabaseSeeder extends Seeder
@@ -13,11 +11,10 @@ class DatabaseSeeder extends Seeder
1311
*/
1412
public function run(): void
1513
{
16-
// User::factory(10)->create();
17-
18-
User::factory()->create([
19-
'name' => 'Test User',
20-
'email' => '[email protected]',
21-
]);
14+
if (env('APP_ENV') === 'local' || env('APP_ENV') === 'dev') {
15+
$this->call([DevSeeder::class]);
16+
} else {
17+
$this->call([ProdSeeder::class]);
18+
}
2219
}
2320
}

database/seeders/DevSeeder.php

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<?php
2+
3+
namespace Database\Seeders;
4+
5+
use Illuminate\Database\Seeder;
6+
use Database\Seeders\Local\User;
7+
8+
class DevSeeder extends Seeder
9+
{
10+
/**
11+
* Seed the application's database.
12+
*/
13+
public function run(): void
14+
{
15+
$this->call([
16+
// user
17+
User\DefaultUserSeeder::class,
18+
User\UserSeeder::class,
19+
]);
20+
}
21+
}
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
<?php
2+
3+
namespace Database\Seeders\Local\User;
4+
5+
use App\Models\User;
6+
use Illuminate\Database\Seeder;
7+
use Illuminate\Support\Facades\Hash;
8+
9+
class DefaultUserSeeder extends Seeder
10+
{
11+
public array $defaultUsers = [
12+
[
13+
'email' => '[email protected]',
14+
'name' => 'Super Admin',
15+
],
16+
[
17+
'email' => '[email protected]',
18+
'name' => 'Admin',
19+
],
20+
[
21+
'email' => '[email protected]',
22+
'name' => 'User Muser',
23+
],
24+
];
25+
26+
/**
27+
* Run the database seeds.
28+
*/
29+
public function run(): void
30+
{
31+
foreach ($this->defaultUsers as $user) {
32+
if (User::where('email', $user['email'])->count() === 0) {
33+
User::create([
34+
'email' => $user['email'],
35+
'name' => $user['name'],
36+
'email_verified_at' => now(),
37+
'password' => Hash::make($user['email']),
38+
]);
39+
}
40+
}
41+
}
42+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<?php
2+
3+
namespace Database\Seeders\Local\User;
4+
5+
use App\Models\User;
6+
use Illuminate\Database\Seeder;
7+
8+
class UserSeeder extends Seeder
9+
{
10+
/**
11+
* Run the database seeds.
12+
*/
13+
public function run(): void
14+
{
15+
User::factory()->count(10)->create();
16+
}
17+
}

database/seeders/ProdSeeder.php

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<?php
2+
3+
namespace Database\Seeders;
4+
5+
use Illuminate\Database\Seeder;
6+
use Database\Seeders\Local\User;
7+
8+
class ProdSeeder extends Seeder
9+
{
10+
/**
11+
* Seed the application's database.
12+
*/
13+
public function run(): void
14+
{
15+
$this->call([
16+
// user
17+
User\DefaultUserSeeder::class,
18+
User\UserSeeder::class,
19+
]);
20+
}
21+
}

0 commit comments

Comments
 (0)