- Home
- Test Data Generation Tools
- Snowfakery
Snowfakery
What it is
Snowfakery is a free, open-source tool that generates synthetic data from YAML recipe files. Recipes can create names, addresses, text, URLs, random numbers, and other values, then define relationships between records and how many related objects to produce. The tool can write to standard output, files, databases accessible through SQLAlchemy, and Salesforce when used through CumulusCI. File formats include JSON, TXT, CSV, SQL, DOT, SVG, SVGZ, JPEG, PostScript, and PNG; some diagram formats require Graphviz.
Python applications can call Snowfakery through its generate_data function, while Python plugins and providers can extend its functions and Faker capabilities. Strict mode validates a recipe before generating data, and validate-only mode checks it without generation. For database output, Snowfakery creates new tables rather than importing into existing ones, and generated columns are text. It always generates an ID for each record, so models must accommodate an ID field. The repository is archived and read-only.
For and against
For
- Free and open source
- Recipes can generate related records
- Supports multiple file output formats
- Can be embedded in Python applications
Against
- Database output creates new tables only
- Generated database columns are text
- Requires models to accommodate an ID field
- Repository is archived and read-only
The verdict
Snowfakery offers flexible recipe-based synthetic data generation, including relational records and several output destinations. Consider its database table and column limits, and avoid running untrusted recipes where they can access secure resources.
Who it suits
Snowfakery may suit developers and Salesforce users who need synthetic records with relationships, file output, or database destinations. It is also intended for people who want to use it without Salesforce.
Plans and prices
Snowfakery
Open-source tool; no paid plans or usage limits stated
Read 9 Oct 2026 · snowfakery.readthedocs.io
On the record
- Database integration
- Snowfakery can write to databases accessible through SQLAlchemy, including SQLite, and its documentation describes connecting to databases such as PostgreSQL, MySQL/MariaDB, and Oracle.snowfakery.readthedocs.io · read 9 Oct 2026
- Database limitation
- For database output, Snowfakery currently creates new tables rather than importing data into existing tables, and generated columns are text.snowfakery.readthedocs.io · read 9 Oct 2026
- Database support
- Snowfakery builds on SQLAlchemy connectors, but its documentation says only SQLite is included in its test suite for SQL dataset URLs.snowfakery.readthedocs.io · read 9 Oct 2026
- Database testing
- Snowfakery is not proactively tested with every output database, and the documentation invites users to share their database experiences and report issues.snowfakery.readthedocs.io · read 9 Oct 2026
- Data generation
- Recipes can generate fake names, addresses, text, URLs, and other values using Faker-based functions.snowfakery.readthedocs.io · read 9 Oct 2026
- Extensibility
- Python plugins can add functions, and providers can add Faker capabilities to Snowfakery.snowfakery.readthedocs.io · read 9 Oct 2026
- File formats
- File-based outputs include JSON, TXT, CSV, SQL, DOT, SVG, SVGZ, JPEG, and PS PNG.snowfakery.readthedocs.io · read 9 Oct 2026
- Generated data
- Recipes can generate fake names, addresses, text, URLs, and other values, as well as random numbers.snowfakery.readthedocs.io · read 9 Oct 2026
- ID requirement
- Snowfakery always generates an ID for each record and requires models that can accommodate an ID field.snowfakery.readthedocs.io · read 9 Oct 2026
- Installation
- The documentation instructs non-Salesforce users to install Snowfakery with pipx and recommends installing CumulusCI for Salesforce use.snowfakery.readthedocs.io · read 9 Oct 2026
- Intended users
- The documentation describes installation paths for Salesforce users and for users who want to use Snowfakery without Salesforce.snowfakery.readthedocs.io · read 9 Oct 2026
- Output destinations
- It can write to standard output, databases accessible through SQLAlchemy, and Salesforce when used with CumulusCI.snowfakery.readthedocs.io · read 9 Oct 2026
- Output formats
- File-based output includes JSON, TXT, CSV, SQL, DOT, SVG, SVGZ, JPEG, and PostScript formats, with some diagram formats requiring Graphviz.snowfakery.readthedocs.io · read 9 Oct 2026
- Purpose
- Snowfakery generates unique, random fake data with relationships between tables from YAML recipe files.snowfakery.readthedocs.io · read 9 Oct 2026
- Python use
- Snowfakery can be embedded in Python applications through its generate_data function.snowfakery.readthedocs.io · read 9 Oct 2026
- Relationships
- Recipes can create related records and control how many related objects are generated for each record.snowfakery.readthedocs.io · read 9 Oct 2026
- Repository status
- The Snowfakery GitHub repository was archived by its owner on September 18, 2026, and is read-only.github.com · read 9 Oct 2026
- Salesforce integration
- For Salesforce use, the documentation recommends installing CumulusCI, which includes Snowfakery and handles generating records into a Salesforce org.snowfakery.readthedocs.io · read 9 Oct 2026