Seed critical state your databases with production data.
You can install the package via composer:
composer require pxlrbt/laravel-database-state
Add the Database\States
namespace to the composer.json
{
"autoload": {
"psr-4": {
"App\\": "app/",
"Database\\Factories\\": "database/factories/",
"Database\\Seeders\\": "database/seeders/",
"Database\\States\\": "database/states/"
}
}
}
You can create a new class via CLI: php artisan make:db-state
. This will create an invokable class in database/States
directory.
Make sure your database states are idempotent, so consecutive runs won't create duplicate entries or overwrite existing entries.
<?php
namespace Database\States;
use App\Models\User;
class UserState
{
public function __invoke()
{
if (! User::where('user', 'info@example.com')->exists()) {
User::forceCreate([
'name' => 'Example User',
'email' => 'info@example.com',
'email_verified_at' => now(),
'password' => '$2y$10$etbrxzCyYhs598Abu6XdAeJ7GZQvDhOvE70XnRtoO25bvif1uEvSi',
]);
}
}
}
The MIT License (MIT). Please see License File for more information.