Show HN: SeedBase, FK-consistent test data from your SQL/Django/Prisma schema

marcelglaeser1 pts0 comments

SeedBase, Synthetic Test Data Generator: FK-Consistent Data from SQL, Django & Prisma Schemas

Realistic test data from your schema. In seconds.

Import SQL, Django models or Prisma, get foreign-key-consistent, privacy-safe data for dev, CI and staging. Watch it work below.

Start free, no card<br>How it works

Free tier · EU-hosted · zero trackers

Seedbase

products

idserial

namevarchar

pricedecimal

descriptiontext

category_idint FK

created_attimestamp

categories

idserial

namevarchar

slugvarchar

parent_idint FK

order_items

idserial

order_idint FK

product_idint FK

quantityint

unit_pricedecimal

orders

idserial

customer_idint FK

statusvarchar

totaldecimal

ordered_attimestamp

customers

idserial

emailvarchar

namevarchar

cityvarchar

idnamepricecategory_id

The test data problem every developer knows.

Manual INSERTs

5 rows aren&rsquo;t enough. 5,000 rows by hand is insane.

Custom Scripts

2 hours per project. Every schema change breaks everything.

Prod Dumps

&ldquo;Just anonymize the prod dump.&rdquo; GDPR says hi.

Generate test data from your schema in three steps.

Design

Paste your DDL, connect an existing database, or build your schema visually.

Generate

Click generate or run seedbase generate. Millions of realistic, FK-safe rows in seconds.

Push

One click to your PostgreSQL, MySQL, or download as SQL / CSV / JSON.

Foreign-key-consistent test data for real databases.

FK-aware Generation

Foreign keys are resolved automatically. Every reference points to a real row. No broken constraints.

Smart Column Detection

email gets emails. first_name gets names. created_at gets timestamps. Seedbase reads your column names.

Instant Preview

See your generated data before you export. Expand any table, check the rows, adjust and regenerate.

Schema Changes? Regenerate.

Changed your schema? Hit generate again. New columns get new data. No broken fixtures.

Every Database

PostgreSQL, MySQL, MariaDB, SQLite, SQL Server. Export as DDL, SQL, CSV, JSON or Parquet — and push to MongoDB, Redis or Elasticsearch.

Team Workflows

Share projects, push to shared staging DBs, set up cron schedules. Everyone gets fresh data.

Anonymize Production Data

Connect your production database, auto-detect PII, and get masked data that keeps formats and foreign keys intact — consistent, deterministic, with a privacy report per run. Or go fully synthetic: data with provably no real customers behind it.

Pull a Consistent Subset

Carve a foreign-key-complete slice of your production data — a realistic 1% for local dev or CI, with every reference intact. No more 50 GB dumps.

Simulate Time, Not Snapshots

Growth curves, seasonality, cohorts and churn. Generate data that evolves like a living system — ideal for building analytics and dashboards.

Beyond SQL

Push the same consistent entities into MongoDB, Redis and Elasticsearch — or stream events to a webhook to simulate live traffic.

SDK, pytest & CI

A Python SDK and a pytest plugin pull deterministic, seeded data straight into your test suite. Spin up a fresh database on every pull request.

For developers who live in the terminal.

Define your schema. Generate. Pull into your DB.

Python CLI<br>Node SDK<br>PHP CLI<br>VS Code · Cursor

# Install<br>$ pip install seedbase

# Authenticate (opens browser)<br>$ seedbase login<br>✓ Authenticated

# Generate realistic, FK-safe data<br>$ seedbase generate<br>→ ✓ users: 1,000 rows<br>→ ✓ posts: 5,000 rows<br>→ ✓ comments: 4,000 rows

# Write schema + data into your DB<br>$ seedbase pull all<br>→ myapp_dev ✓

// Install<br>$ npm install @seedbase/client

// Generate & download in your code<br>import { SeedbaseClient } from "@seedbase/client";

const sb = new SeedbaseClient({ token: process.env.SEEDBASE_TOKEN });<br>const gen = await sb.generate(projectId, { wait: true });<br>const sql = await sb.download(gen.id, { format: "sql" });<br>// → 10,000 FK-safe rows, ready to load

# Install<br>$ composer global require seedbase/seedbase

# Authenticate (opens browser)<br>$ seedbase login<br>✓ Authenticated

# Generate & pull into your database<br>$ seedbase generate myapp --wait<br>$ seedbase pull myapp --to-file seed.sql<br>→ seed.sql ✓

# Or in Laravel<br>$ php artisan db:seed --class="Seedbase\Laravel\SeedbaseSeeder"

# Cursor · VSCodium · Gitpod · Windsurf<br># → search "SeedBase" in the Extensions panel

# …or from the command line:<br>$ cursor --install-extension seedbase.seedbase<br>✓ Installed seedbase.seedbase

# Browse projects, generate & pull SQL<br># straight into your editor, no terminal.

Define your schema. Generate. Pull into your DB.

Django · Laravel · Symfony · SQLAlchemy · Prisma · TypeORM · Rails · Sequelize

Your fixtures.sql is always outdated. seedbase pull never is.

Get the VS Code & Cursor extension on Open VSX →<br>Also on the VS Code Marketplace →

Test data for Postgres, MySQL, Django and Prisma.

Seedbase isn&rsquo;t just for Python. The CLI writes data straight into your database — from there on, your language doesn&rsquo;t matter. Or call the REST API directly....

seedbase data generate schema pull test

Related Articles