Schema-first
No config to start. Point at a database or a schema file.
dbsprout init --db postgresql://localhost/myapplorem ipsum users. Impossible foreign keys. Distributions nothing like
production. Fixtures that rot the moment the schema changes. DBSprout reads
your real schema — live database or schema file — and grows data that
actually fits it, with 100% referential integrity.
Schema-first
No config to start. Point at a database or a schema file.
dbsprout init --db postgresql://localhost/myapp100% FK integrity
Tables are topologically ordered; FK columns sample from real parent keys; cycles and self-references are resolved automatically.
Deterministic & offline
The same --seed (default 42) produces identical output. No internet,
API key, or account required.
-- schema.sql (input)CREATE TABLE authors ( id INTEGER PRIMARY KEY, name TEXT NOT NULL, country TEXT);CREATE TABLE books ( id INTEGER PRIMARY KEY, author_id INTEGER NOT NULL REFERENCES authors(id), title TEXT NOT NULL, price NUMERIC(6,2), published_on DATE);-- seeds/002_books.sql (generated)INSERT INTO books (id, author_id, title, price, published_on) VALUES (1, 3, 'The Salt Graves', 14.99, '2021-06-02'), (2, 1, 'Northwind', 9.50, '2019-11-15'), (3, 3, 'A Lantern Year', 22.00, '2023-02-28');-- author_id values are sampled from real authors PKsdbsprout init --file schema.sqldbsprout generate --rows 1000dbsprout validate| Engine | Speed | Quality | Use when |
|---|---|---|---|
heuristic | 100K+ rows/sec | ~80% semantic | Default — fast fixtures, no model |
spec | cached after first run | high semantic | You want column-aware accuracy |
statistical | fast | distribution-faithful | You have a real data sample |
finetuned | cached | highest | You trained a LoRA adapter |
pip install dbsprout