rokde/laravel-clone-database-command

This package adds the ability to clone a database for development purposes locally. So you can overwrite personal data with faker values to keep the data type.

1.0.0 2024-02-06 15:53 UTC

README

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.