webparking/laravel-db-rebuild

A laravel package that allows for quick database rebuilds with presets.

1.2.0 2020-09-10 10:23 UTC

This package is auto-updated.

Last update: 2024-04-10 18:29:36 UTC


README

Build Status Quality score Code coverage

This package is meant to provide an easy way of resetting your development database to a certain state.

In addition to php artisan migrate:fresh this package also allows you to backup tables (for example sessions and admin_users, to stay logged in) and run custom seeders or commands based on presets.

This allows you to easily seed different information for local development, your tests and staging.

Installation

Add this package to composer.

composer require webparking/laravel-db-rebuild

Publish the config:

php artisan vendor:publish --provider="Webparking\DbRebuild\ServiceProvider"

Usage

The default usage is the following, this will use the default preset. It will also ask you if you're sure you want to reset the db.

php artisan db:rebuild

You an skipp the question by adding the --f flag. You can change the preset by adding --preset=test

php artisan db:rebuild --preset=test --f

Config

return [
    'presets' => [
        'default' => [
            'database' => 'local_database',
            'backup' => [
                'sessions',
                'admin_users',
            ],
            'commands' => [
                'db:seed',
            ],
            'seeds' => [
                
            ],
        ],
        'test' => [
            'database' => 'testing_database',
            'backup' => [
                'sessions',
            ],
            'commands' => [
                'db:seed',
            ],
            'seeds' => [
                TestSeeder::class
            ],
        ],
    ],
];

Licence and Postcardware

This software is open source and licensed under the MIT license.

If you use this software in your daily development we would appreciate to receive a postcard of your hometown.

Please send it to: Webparking BV, Cypresbaan 31a, 2908 LT Capelle aan den IJssel, The Netherlands