heyday / laravel-anonymised-sql-dumps
Generate anonymised SQL dumps for Laravel. Wrapper for ifsnop/mysqldump-php
Installs: 22
Dependents: 0
Suggesters: 0
Security: 0
Stars: 2
Watchers: 4
Forks: 2
pkg:composer/heyday/laravel-anonymised-sql-dumps
Requires
- php: ^7.0
 - fzaninotto/faker: ~1.4
 - ifsnop/mysqldump-php: ^2.6
 
This package is auto-updated.
Last update: 2025-10-29 02:16:15 UTC
README
Essentially a wrapper around ifsnop/mysqldump-php that allows you to specify what columns to anonymise using Faker
Helpful tool to debug production DBs while staying GDPR compliant.
Installation
You can install the package via Composer:
composer require heyday/laravel-anonymised-sql-dumps
In Laravel 5.5 and above, the package should autoregister the service provider. For Laravel 5.4 or below you must install this service provider to config/app.php:
'providers' => [
    // ...
    Heyday\AnonymisedSQLDumps\AnonymisedSQLDumpsServiceProvider::class,
];
Publish the config file:
php artisan vendor:publish --provider="Heyday\AnonymisedSQLDumps\AnonymisedSQLDumpsServiceProvider" --tag="config"
Update the published config file (config/anonymised-sql-dumps.php) to match your DB structure (only the columns you want to anonymise) and specify a Faker property to replace original data, eg:
<?php
/**
 * mapping the DB columns to anonymise with faker
 * (see list of properties available:
 * vendor/fzaninotto/faker/src/Faker/Generator.php)
 *
 * 'TableName' => [
 *     'column' => 'fakerProperty'
 *      ]
 * if JSON, nest one deeper
 * eg
 *
 *     'adults' => [
 *         'name' => 'name', //normal column
 *         'data' => [ //json column
 *            'last_name' => 'lastName'
 *         ]
 *      ]
 */
return [
    'users' => [
        'last_name'      => 'lastName',
        'first_name'     => 'firstName',
        'phone_number'   => 'phoneNumber',
        'email'          => 'email'
    ]
];
Usage
An artisan command should now be available.
The command to run is anonymised-db-dumps:export and it takes one optional argument which is the name of the dump file.
The generated .sql file will be available in storage/dbdumps.
TODO
- Make the DB connection as an option.
 - Make the destination disk/path as an option.
 - Allow more nesting for JSON columns.
 - Automatic detection of common fields? (email, address, name, etc...)