pxlrbt/laravel-database-state
Laravel Database State
Seed critical state your databases with production data.
Installation
You can install the package via composer:
composer require pxlrbt/laravel-database-state
Add autoloader
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/"
}
}
}
Create your first database state
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',
]);
}
}
}
Credits
License
The MIT License (MIT). Please see License File for more information.
Related Packages
illuminatech/enum-seeder
Allows easy creation of DB seeders for the dictionary (enum) type tables
1,940
3
Version History
| Version | Released | PHP | Laravel | License |
|---|---|---|---|---|
| v2.0.0 | ^8.2 | ^11.0| | MIT | |
| v1.0.7 | ^8.1 | ^9.0| | MIT | |
| v1.0.6 | ^8.1 | ^9.0| | MIT | |
| v1.0.5 | ^8.1 | ^9.0| | MIT | |
| v1.0.4 | ^8.1 | ^9.0| | MIT | |
| v1.0.3 | ^8.1 | ^9.0| | MIT | |
| v1.0.2 | ^8.1 | ^9.0| | MIT | |
| v1.0.1 | ^8.1 | ^9.0| | MIT | |
| v1.0.0 | ^8.1 | ^9.0| | MIT |