Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/webparking/laravel-db-rebuild

A laravel package that allows for quick db rebuilds with presets.
https://github.com/webparking/laravel-db-rebuild

Last synced: about 1 month ago
JSON representation

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

Awesome Lists containing this project

README

        


Laravel DB Rebuild



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

```PHP
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](LICENSE.md).

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