data-peek
Features

Data Generator

Generate realistic, FK-aware test data for any table — for development, testing, and demos

Data Generator

Generate realistic test data for your tables without leaving data-peek — no seed scripts, no Faker boilerplate, no hand-writing a thousand INSERTs.

It’s the fastest way to fill an empty dev database, stress-test a query against realistic volume, or build a believable demo dataset. Because it’s foreign-key aware, you can populate a whole related schema (organizations → users → invoices) and the rows actually join up.

Opening the Generator

Right-click a table in the sidebar and select Generate Data, or open it from the command palette. It opens as a dedicated tab.

Configuring Columns

For each column, choose a generator:

GeneratorOutput
Auto-incrementSequential integers
UUIDRandom UUIDs
Faker: nameRealistic names
Faker: emailRealistic emails
Faker: phonePhone numbers
Random integerInteger within a range
Random floatFloat within a range
Random booleantrue/false
Random dateDate within a range
Random enumRandom pick from a list
FK referenceReal values from a referenced table
Fixed valueA constant value for all rows
NULLAlways NULL
SQL expressionCustom SQL (e.g. NOW())

Generation Options

  • Row count — generate 1 to 10,000 rows
  • Seed — set a seed for reproducible output

Preview Mode

Click Preview to generate sample rows without inserting them. Review the data, adjust generators, then click Generate to insert.

Progress

A progress indicator shows generation status. You can cancel at any time.

To fill organizations then users so every user belongs to a real org:

  1. On organizations, set nameFaker: name, planRandom enum (free, pro, enterprise), generate 20 rows.
  2. On users, set emailFaker: email, organization_idFK reference (organizations.id), generate 500 rows.

Now the join works out of the box:

SELECT o.plan, count(u.id) AS users
FROM organizations o JOIN users u ON u.organization_id = o.id
GROUP BY o.plan;

Use the FK reference generator to maintain referential integrity — it pulls real values from the parent table, so generate parents before children. Set a seed when you need the same dataset every run (handy for reproducible tests or screenshots).

On this page