A run-anywhere, dependency-less database anonymizer.
Download the latest release from GitHub.
dbanon
reads from stdin
and writes to stdout
.
mysqldump --complete-insert mydb | dbanon -config=myconfig.yml | gzip > mydb.sql.gz
The -config
flag can use bundled configurations or point to the path of a custom configuration file.
dbanon
bundles a default Magento 2 configuration file. However you almost certainly won't use it directly.
At minimum, you'll first need to run the map-eav
subcommand. This translates EAV attribute codes to their respective attribute ids.
You must feed it a mysqldump
of eav_entity_type
and eav_attribute
(in that order).
mysqldump --complete-insert mydb eav_entity_type eav_attribute | dbanon -config=magento2 map-eav > ~/magento2-mapped.yml
map-eav
will replace the attribute codes in the config file with attribute ids and print an updated config to stdout
.
Next you'd run dbanon
with the config generated by map-eav
.
mysqldump --complete-insert mydb | dbanon -config=~/magento2-mapped.yml | gzip > mydb.sql.gz
Most Magento 2 databases, however, will have additional data that needs to be anonymized beyond the default bundled file.
For this you'll first want to create a new configuration file based off the bundled configuration. Instructions on customizing the configuration file are included in the "Custom Configuration" section.
Specify the path to your config file via the -config
flag
mysqldump --complete-insert mydb | dbanon -config=myconfig.yml | gzip > mydb.sql.gz
See the etc
directory for examples.
Columns are specified as key / value pairs. The value string winds up getting passed to this function, which gets random values from dmgk/faker
- Currently only supports MySQL
- Currently requires
mysqldump
be run with--complete-insert
flag.