FakeData

Database-native test data generation

PostgreSQL MySQL SQLite
pro demo

Use Cases

Deterministic test data with seeds and CSV output. Reproduce the same results every time for reliable test suites.

Testing

Try it yourself:

$ fakedata --seed 42 -n 10 -H email country

Quick mock data for APIs with NDJSON. Choose from 80+ built-in generators including names, emails, URLs, and even dinosaurs.

Development

Try it yourself:

$ fakedata --format ndjson -n 3 name email company

Stream thousands of rows to test database performance and API limits. Pipe to a file, count lines, and stop when ready.

Load Testing

Try it yourself:

$ fakedata --stream email country | head -5

Custom Go templates for any output format. Define your own schema and generate JSON, YAML, or any text.

Custom Output

Try it yourself:

$ fakedata -T user.tmpl -n 3

See exactly what would be generated before inserting a single row. The dry-run mode introspects your schema, resolves generators for every column, and prints the full plan — tables, row counts, column types, mapped generators, and FK relationships.

Dry Run

Try it yourself:

$ fakedata-pro --dsn sqlite:pro.db -t users:5 -t products:5 -t orders:10 --dry-run

Fine-tune column generators with the -c flag. Override auto-detected generators per column, set ranges for int generators, supply enum values, or pin any column to a specific generator. Supports schema.table.column syntax for full control.

Override

Try it yourself:

$ fakedata-pro --dsn sqlite:pro.db -c orders.quantity=int:1,5 --dry-run

Get Started

Free

0 for ever

80+ generators, streaming, templates, and deterministic output — all from your terminal.

  • 80+ generators
  • CSV, TSV, NDJSON output
  • Streaming & batch modes
  • Go template support
  • Deterministic seeds
Get Started

What Can You Generate?

search for generators here
$ fakedata

No generators match "". Try one of these:

FakeData CLI

Prefer working from the command line? FakeData CLI gives you 80+ generators, streaming mode, templates, and deterministic output — all from your terminal.