Test data generator

Test data your tests can trust.

Misata generates relational test data from your schema: paste CREATE TABLE statements or describe the tables, and get rows where every foreign key is valid, dates are in order and any rate you declare is exact. The same seed gives identical rows every run, so a fixture never drifts, and the SQL export loads into Postgres, MySQL, SQLite, SQL Server, Oracle, BigQuery or Snowflake.

Three tables joined key to key, ending in a printed receipt with a green check

What usually goes wrong

Test data seeds a development database, backs an integration test or a CI fixture, and exercises the edge cases production has.

Insert order failures

Children inserted before parents, or keys that point at nothing, and the seed script dies on the first constraint.

Fixtures that drift

Random data changes every run, so a failing test cannot be reproduced.

Only happy paths

Clean data never exercises the null, the duplicate or the out-of-range value your code has to survive.

What you get instead

Reads your schema

From DDL, a schema description, or (with the open-source library) straight from your database, parents before children.

Deterministic

Same schema, same seed, byte-identical rows. Commit the seed, not the data.

Defects on purpose

Ask for duplicates, typos, nulls or outliers at a stated rate, and the certificate lists where they are.

A request that works

Seed data for this schema: 200 accounts, users per account, subscriptions and invoices, with 2% of invoices failed and a few duplicate emails planted.

Four ways to get it

How the approaches compare

Random-value libraryForm-based generatorAsking a chatbot for rowsMisata
Realistic single values (names, emails, addresses)
Several tables whose keys always join
Declared totals and rates come out exact
Same rows every run (seeded)
Shows a check of what it produced
No code needed

General approaches, not specific products; individual tools vary. A dash means some tools do it, or it takes work.

Questions

How do I generate test data for a relational database?

Give the generator your schema so it knows the keys. With Misata you can paste CREATE TABLE statements into Studio, ask your assistant through the MCP server, or run the open-source library against a dev database: it inserts parents before children and checks every foreign key afterwards.

Can I keep test data reproducible in CI?

Yes. Generation is deterministic for a given schema and seed, so CI can regenerate the same rows every run instead of storing large fixture files.

Can it include bad data on purpose?

Yes. Declare duplicates, typos, missing values or outliers at the rate you want. They are planted where you said and recorded, so a data-quality test knows exactly what it should catch.

Is it free?

The twelve sample databases are free to download with no signup, under CC0. Misata Studio gives every account 20 credits a month, which is two complete builds, with no card. The MCP server needs no key or account for datasets the assistant designs itself, and the Python library is open source under MIT.