Developer Tools

Database Seed Data Generator

Paste your schema and get INSERT statements full of realistic test data. Values are chosen from each column’s name and type, so first_name gets names, email gets addresses, price gets money amounts and status gets one of its enum values. Tables are filled in dependency order, foreign keys always point at existing rows, unique columns stay unique and the same seed always gives the same data.

  • Runs in your browser
  • No sign-up
  • Free to use
Start from an example

The same seed always gives the same data.

Options

    How to use Database Seed Data Generator

    1. Paste the CREATE TABLE statements.
    2. Choose rows per table, seed, database and locale.
    3. Pick NULL, transaction and cleanup options.
    4. Run the seed script on a development database.

    Database Seed Data Generator features

    Smart values

    Names, e-mails, phones, cities, slugs, SKUs, prices and text by column name.

    Types respected

    Integers, decimals with scale, dates, booleans, enums, UUIDs and JSON.

    Constraints

    Unique values, NOT NULL, VARCHAR lengths and composite keys.

    Valid relations

    Parents first; foreign keys pick existing rows.

    Repeatable

    A seed number makes the data deterministic.

    Locales

    English, German, Spanish and Bangladeshi names and places.

    When to use Database Seed Data Generator

    • Filling a development database for UI work.
    • Creating fixtures for automated tests.
    • Demonstrating an application with plausible data.
    • Testing query performance with more rows.

    Database Seed Data Generator FAQ

    How are values chosen?

    From the column name first (email, first_name, city, price, slug…) and the type second. ENUM and CHECK lists use their allowed values, and text columns get sentences.

    Will foreign keys be valid?

    Yes. Tables are filled in dependency order and each foreign key picks one of the rows already generated for the referenced table.

    What does the seed do?

    It initialises the random generator, so the same seed and settings always produce exactly the same data, which keeps tests reproducible.

    Are auto-increment ids inserted?

    No, the database assigns them. The references assume the tables start empty, so ids begin at 1.

    Is the data real?

    No. Names come from small built-in lists and all e-mail addresses use example domains, so no real person’s data is used.

    Is anything uploaded?

    No. The data is generated in your browser.

    Test data that fits the schema

    An empty database makes it hard to develop and test an application: lists look broken, pagination cannot be tried and queries are fast for the wrong reasons. Writing test rows by hand is slow, and random data that ignores the schema fails on the first constraint. This generator reads the schema and produces data that satisfies it.

    Values come from the column’s meaning as well as its type. Names, e-mail addresses, phone numbers, cities, countries, postal codes, URLs, slugs, SKUs, currencies, titles and descriptions are recognised by column name; prices and totals get realistic amounts with the column’s decimal scale; quantities, stock and view counts get suitable ranges; and timestamps are spread over the last two years, with updated or published dates after the creation date.

    Constraints are respected. Unique columns never repeat, NOT NULL columns are always filled, strings are cut to their VARCHAR length, enum columns use their allowed values, and composite primary keys skip duplicate combinations. Optional columns are left NULL now and then, so screens handle missing values too.

    Relations are the hardest part of test data. The generator orders the tables by their foreign keys, fills parents first, and lets each foreign key pick one of the rows that already exist, so every reference is valid and the script runs with foreign key checks enabled.

    A seed number makes everything repeatable: the same schema, settings and seed always produce the same rows, so tests and screenshots stay stable. The data is fictional, built from small lists of common names, and all e-mail addresses use example domains.

    Other useful tools