TotalApp Docs

Seed Data Generator

Generate realistic fake data for any database table in seconds.

Overview

The Seed Data Generator creates realistic, randomized test data for any table structure you define. Specify the table name and its columns, choose a data type for each column, set how many rows to generate (up to 10,000), preview the first 10 rows, and export the result as SQL INSERT statements, JSON, or CSV. No database connection is required — generation runs entirely in the browser.

Realistic Data

Names, emails, phone numbers, addresses, and other human data types produce plausible-looking values, not random strings. Emails match the generated name's first and last name.

Configurable Ranges

Integer, decimal, and date columns let you set min/max bounds so generated values stay within your domain constraints.

Live Preview

The first 10 rows are shown in a preview table before you export. Regenerate the preview as many times as needed to check the output looks right.

Multiple Export Formats

Export as SQL INSERT statements, JSON array, or CSV. Choose the format that matches your seed script or test fixture setup.

Defining the Schema

Start by entering a table name in the Table Name field, then add columns one by one.

Adding Columns

  1. Click + Add Column.
  2. Enter the column name (e.g. first_name).
  3. Select a data type from the dropdown (see the Data Type Reference table below).
  4. Configure any type-specific options that appear (min/max for numbers, enum list for enum type, date range for date types).
  5. Toggle Nullable if approximately 10% of values should be NULL.
  6. Toggle Unique to ensure no two rows have the same value for this column (for UUIDs and email addresses this is always enforced).

Import Schema from Schema Visualizer

Click Import Schema in the toolbar to load column definitions from a schema you already imported in the Schema Visualizer. This pre-fills the column list based on the selected table's columns and their types.

Reordering and Deleting Columns

Drag column rows to reorder them — the order determines the column order in SQL INSERT and CSV output. Click the trash icon on a column row to remove it.

Data Type Reference

TypeExample OutputConfiguration Options
uuid550e8400-e29b-41d4-a716-446655440000None — always v4 UUID, always unique
firstNameAliceLocale (en / tr / de / fr / es)
lastNameJohnsonLocale
fullNameAlice JohnsonLocale
emailalice.johnson@example.comDomain suffix (example.com, test.org, etc.)
phone+1-555-0132Country code format
integer42Min value, max value
decimal19.95Min, max, decimal places (0–4)
booleantrue / falseTrue probability (0–100%)
date2024-03-15Start date, end date
timestamp2024-03-15T09:41:00ZStart date, end date, timezone (UTC or local)
enumOne value from your listComma-separated list of allowed values, uniform or weighted distribution
textA 1–3 sentence lorem ipsum paragraphMin words, max words
urlhttps://example.com/path/to/pageProtocol (https/http), domain
ipAddress192.168.1.42IPv4 or IPv6
countryGermanyName or ISO code (DE)
cityIstanbulLocale
postalCode10001Country format
companyNameApex Solutions GmbHLocale
autoIncrement1, 2, 3Start value, step
constantA fixed value you specifyThe constant value string

Row Count & Preview

Use the Row Count slider or input to set the number of rows to generate (1 to 10,000). Click Preview to generate the first 10 rows and display them in the preview table. The preview re-randomizes each time you click Preview — all 10 rows are different samples from the full generation.

When you are satisfied with the preview, click Generate & Export to produce the full dataset in your chosen format.

Seed Locking

Enable Lock Seed to fix the random seed used for generation. With a fixed seed, the same schema and row count always produces identical output — useful for reproducible test fixtures in CI pipelines.

Export Formats

SQL INSERT

Generates INSERT INTO tablename (col1, col2, …) VALUES (…), (…); statements. Strings are single-quoted and escaped. NULLs are rendered as NULL. Batched into groups of 500 rows per statement for large datasets.

JSON Array

Generates a JSON array of objects: [{"col1":"val","col2":42}, …]. Suitable for seeding NoSQL databases, test fixtures, or any tool that consumes JSON.

CSV

Generates a comma-separated file with a header row. Strings containing commas or quotes are properly quoted. Suitable for bulk-load tools (COPY FROM, MySQL LOAD DATA INFILE).

Tips

  • Use the autoIncrement type for primary key columns — it guarantees uniqueness and produces clean sequential IDs starting from 1.
  • For foreign key columns, use integer with a min of 1 and a max equal to the number of rows in the parent table so references are always valid.
  • Combine firstName and lastName columns with the same locale, then use the email type configured to derive from them for realistic name–email coherence.
  • Use the constant type for columns that should have the same value in every row (e.g. a tenant_id for multi-tenant seed data).
  • For status or role columns, use enum with weighted distribution to produce a realistic mix (e.g. 70% active, 20% inactive, 10% pending).

AI Assistant

Open the built-in AI Assistant from the tab on the right edge of the screen to get help designing your field schema. The assistant sees the table name, the current field list (name, type, nullability), the row count, export format, and whether data has been generated yet, so you can ask things like:

  • "What fields should an orders table have?"
  • "What does the enum field type generate and how do I configure it?"
  • "What null chance should I use for an optional phone field?"
  • "How many rows and which format should I use for seeding a dev database?"

The assistant does not see the actual generated rows — it reasons over the field schema and settings shown on screen, not real output data.

FAQ

Does the generator respect unique constraints?
Yes. Columns marked Unique produce values that are guaranteed unique within the generated batch. If a unique value cannot be generated (e.g. an enum column with only 5 values and you request 10,000 unique rows), the generator shows an error and stops before export.
Can I generate data for multiple related tables at once?
Not in a single generation step. Generate the parent table first, then generate the child table using an integer range for the foreign key column that matches the parent's row count. Download both outputs and run the SQL in order: parent INSERT first, then child INSERT.
How long does generation take for 10,000 rows?
Generation of 10,000 rows for a typical 8-column table takes under 2 seconds on modern hardware. JSON and CSV export are the fastest formats; SQL INSERT is slightly slower due to string escaping. Download starts immediately after generation completes.
Is the generated data safe to use in production?
Seed data is intended for development and testing environments only. Do not insert generated data into production databases. Email addresses use @example.com and other reserved domains to prevent accidental real-world delivery.