PHPackages                             digilist/snakedumper - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. digilist/snakedumper

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

digilist/snakedumper
====================

v0.2.2(6y ago)4946.0k↓59%27[4 issues](https://github.com/digilist/SnakeDumper/issues)[1 PRs](https://github.com/digilist/SnakeDumper/pulls)MITPHPPHP &gt;=5.5CI failing

Since Jun 6Pushed 5y ago4 watchersCompare

[ Source](https://github.com/digilist/SnakeDumper)[ Packagist](https://packagist.org/packages/digilist/snakedumper)[ RSS](/packages/digilist-snakedumper/feed)WikiDiscussions master Synced 2d ago

READMEChangelog (4)Dependencies (9)Versions (5)Used By (0)

SnakeDumper
===========

[](#snakedumper)

SnakeDumper is a tool to create a reasonable development dump of your production database **which does not contain any sensitive data**. It works similar to mysqldumper (or related tools), but applies a set of data converters and filters to your data. (If there aren't any filters and converteres configured it works exactly like any other dumper.)

*Please note that the SnakeDumper is currently in an early preview phase. It is written to work with any SQL-compatible database, but is at the moment only tested against MySQL and SQLite.* The vision is to support a wide range of database systems later (including NoSQL).

Features
--------

[](#features)

### Filter

[](#filter)

SnakeDumper allows to filter the data that will be dumped to keep the development database small. Therefore, there are various filters, that can be applied before the data is loaded from the database.

You can

- apply regular SQL conditions (equals, unequals, lower than, ...),
- limit the number of rows,
- change the order of the selected rows (e.g. to select only the latest entries),
- and apply a custom SQL to be fully flexible.

If you apply those filters, SnakeDumper will keep the referential integrity of your database dump so that all foreign keys stay valid. All rows that have references on rows that were excluded from the dump will be skipped. Example: There is a table with customers and billings. You decide that you only want to dump the latest 100 customers. SnakeDumper will then automatically dump only those billings that belong to the considered customers.

Furthermore, you can configure SnakeDumper to skip whole tables or the contents of some tables.

### Data Converter

[](#data-converter)

The main objective of the SnakeDumper is to build reasonable development dumps that do not contain any sensitive data. Therefore, there are are various data converts that allow to alter the dumped data and replace all sensitive information with other random (or static) data.

There are already a lot of converters. Here are just a few examples:

- Random first and last name
- Random company names
- Random number
- Empty string
- Static value

And generally, you can use anything that is offered by the awesome faker library.

Installation
------------

[](#installation)

You can install the SnakeDumper with Composer (`digilist/snakedumper`) or download the phar:

Usage
-----

[](#usage)

To use the SnakeDumper you have to create a configuration file which defines how to convert your database (see Example Configuration). You can run SnakeDumper with one of the following commands (depending on your installation method):

```
php bin/snakedumper dump ./demo.yml

```

```
php snakedumper.phar dump ./demo.yml

```

To get started please take a look at the [docs](docs/index.md).

### Example Configuration

[](#example-configuration)

There are a lot of configuration options for the SnakeDumper available. The best way to get started is by looking at the example configuration file ([demo.yml](demo.yml)).

Testing
-------

[](#testing)

The test suite needs a running MySQL server at the moment. You can use the following Docker command to start one:

```
docker run -it -p 3306:3306 --rm -e MYSQL_ALLOW_EMPTY_PASSWORD=1 mysql:5.7 --character-set-server=utf8 --collation-server=utf8_unicode_ci
```

Alternatively, there is a [docker-compose.yml](docker-compose.yml) which you can use to start a Docker container for testing.

### Security / Caution!

[](#security--caution)

Please note that some configuration parameters are passed directly to the database server. Although this tool does not perform any changes on your data, it is still possible to alter your data with invalid configuration parameters (e.g. by defining a custom query which performs updates). So please do not configure this tool with any kind of user provided data! We do not perform any security checks at the moment! Use it at your own risk, we give absolutely no warranty.

Furthermore, SnakeDumper does not guarantee that there is no sensitive data left in your dump. You - as a user of SnakeDumper - are responsible for the correct configuration and usage.

How to contribute
-----------------

[](#how-to-contribute)

We are open for every type of contribution. You can test the SnakeDumper, report bugs, propose new features or help us with the development. Feel free to create a new issue or open a pull request 😃

License
-------

[](#license)

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

###  Health Score

36

—

LowBetter than 79% of packages

Maintenance18

Infrequent updates — may be unmaintained

Popularity42

Moderate usage in the ecosystem

Community23

Small or concentrated contributor base

Maturity51

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 73.7% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~209 days

Total

4

Last Release

2321d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/833667?v=4)[Markus Fasselt](/maintainers/digilist)[@digilist](https://github.com/digilist)

---

Top Contributors

[![digilist](https://avatars.githubusercontent.com/u/833667?v=4)](https://github.com/digilist "digilist (98 commits)")[![ksm2](https://avatars.githubusercontent.com/u/1469675?v=4)](https://github.com/ksm2 "ksm2 (23 commits)")[![Kr42](https://avatars.githubusercontent.com/u/6927077?v=4)](https://github.com/Kr42 "Kr42 (3 commits)")[![FrankGiesecke](https://avatars.githubusercontent.com/u/4430040?v=4)](https://github.com/FrankGiesecke "FrankGiesecke (1 commits)")[![Hunter-Dolan](https://avatars.githubusercontent.com/u/361443?v=4)](https://github.com/Hunter-Dolan "Hunter-Dolan (1 commits)")[![emembeka](https://avatars.githubusercontent.com/u/21238197?v=4)](https://github.com/emembeka "emembeka (1 commits)")[![pdobrigkeit](https://avatars.githubusercontent.com/u/1052961?v=4)](https://github.com/pdobrigkeit "pdobrigkeit (1 commits)")[![robertfausk](https://avatars.githubusercontent.com/u/1651297?v=4)](https://github.com/robertfausk "robertfausk (1 commits)")[![Simperfit](https://avatars.githubusercontent.com/u/3451634?v=4)](https://github.com/Simperfit "Simperfit (1 commits)")[![thegass](https://avatars.githubusercontent.com/u/101392?v=4)](https://github.com/thegass "thegass (1 commits)")[![Forestsoft-de](https://avatars.githubusercontent.com/u/132578?v=4)](https://github.com/Forestsoft-de "Forestsoft-de (1 commits)")[![Warxcell](https://avatars.githubusercontent.com/u/3340882?v=4)](https://github.com/Warxcell "Warxcell (1 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/digilist-snakedumper/health.svg)

```
[![Health](https://phpackages.com/badges/digilist-snakedumper/health.svg)](https://phpackages.com/packages/digilist-snakedumper)
```

###  Alternatives

[flow-php/flow

PHP ETL - Extract Transform Load - Data processing framework

85036.3k](/packages/flow-php-flow)[shopware/core

Shopware platform is the core for all Shopware ecommerce products.

585.6M572](/packages/shopware-core)[matomo/matomo

Matomo is the leading Free/Libre open analytics platform

21.7k38.9k](/packages/matomo-matomo)[shopware/platform

The Shopware e-commerce core

3.4k1.5M3](/packages/shopware-platform)[oro/platform

Business Application Platform (BAP)

645143.5k115](/packages/oro-platform)[contao/core-bundle

Contao Open Source CMS

1231.6M2.8k](/packages/contao-core-bundle)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
