This artisan command can clone a production database to development databases with overwriting some personal data as configured.
You can install the package via composer:
composer require rokde/laravel-clone-database-command
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.
The whole configuration is stored in a class DatabaseSyncConfiguration
.
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.
The chunk size can be configured for a specific table or for any table.
The limit of rows can be configured for a specific table or for any table.
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);
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.
composer test
Please see CHANGELOG for more information on what has changed recently.
Please see CONTRIBUTING for details.
Please review our security policy on how to report security vulnerabilities.
The MIT License (MIT). Please see License File for more information.