Skip to content

rokde/laravel-clone-database-command

Repository files navigation

This is the laravel clone database command

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

This artisan command can clone a production database to development databases with overwriting some personal data as configured.

Installation

You can install the package via composer:

composer require rokde/laravel-clone-database-command

Usage

You can use the pre-configured artisan console command:

php artisan db:clone

This assumes that there are the entries source and target in the database configuration.

Otherwise you can create your own clone command to meet the configurable needs.

All single tasks can be found in the src/Actions folder. So you can join it like you want if necessary.

Configuration

The whole configuration is stored in a class DatabaseSyncConfiguration.

source & target connection

The name of the connections and the connection configuration is editable. So if you already have a target or source connection configured - you can change that name if necessary.

chunk size

The chunk size can be configured for a specific table or for any table.

limit

The limit of rows can be configured for a specific table or for any table.

mutations

A mutation can be configured for a specific table or for any table. So the given column name can be used for any table when existent. So you can replace all email columns by a fake email like so:

$config->addMutation('email', fn() => fake()->email);

behaviour

We can decided what to do with the tables already existing on the target: keep it as is, or drop all unhandled tables.

Another option is to delete records before inserting the new ones or should the table be dropped before and the structure should be stored newly.

Testing

composer test

Changelog

Please see CHANGELOG for more information on what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security Vulnerabilities

Please review our security policy on how to report security vulnerabilities.

Credits

License

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

About

Clone a database with overwriting table values

Resources

License

Stars

Watchers

Forks

Sponsor this project

Packages

No packages published

Languages