Skip to content

Latest commit

 

History

History
70 lines (52 loc) · 2.42 KB

README.md

File metadata and controls

70 lines (52 loc) · 2.42 KB

Laravel Database State

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

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', '[email protected]')->exists()) {
            User::forceCreate([
                'name' => 'Example User',
                'email' => '[email protected]',
                'email_verified_at' => now(),
                'password' => '$2y$10$etbrxzCyYhs598Abu6XdAeJ7GZQvDhOvE70XnRtoO25bvif1uEvSi',
            ]);
        }
    }
}

Credits

License

The MIT License (MIT). Please see License File for more information.