Incremental Generation

Grow an existing dataset without regenerating from scratch. IDs auto-offset, FK integrity is maintained across both batches.

Python
import misata

# Initial seed
schema = misata.parse("A fintech company with 1000 customers", rows=1000)
tables = misata.generate_from_schema(schema, seed=1)
print(len(tables["customers"]))  # 1000

# Add 1000 more rows later
tables = misata.generate_more(tables, schema, n=1000, seed=2)
print(len(tables["customers"]))  # 2000

How IDs are handled#

generate_more offsets integer id columns in the new batch so they don't collide with existing rows:

Python
existing_max_id = tables["customers"]["id"].max()   # e.g. 1000
# New batch IDs start from 1001 automatically

Use cases#

  • Streaming test fixtures: generate a baseline, then add rows as tests progress
  • Dataset growth simulation: model a platform growing from 1k → 100k users over time
  • Append-only seeding: add rows to a live dev database without truncating

Seed independence

Each call to generate_more uses a different seed (schema.seed + 1 by default). Pass an explicit seed for full reproducibility across calls.

Prefer generating data visually?

Misata Studio lets you turn natural language prompts into relational schemas with exact outcome invariants, live preview tables, and one-click database seeding without writing code.

Last updated Edit this page.md