django-data-seed¶
Point it at your Django project and get realistic, constraint-valid data at bulk-insert speed — with zero configuration.
What is database seeding?¶
Seeding is filling a database with data so you have something to work against — during development, in a demo, on a staging environment, or inside tests. The data isn't real, but it should look real and behave like real data: valid emails, believable prices, foreign keys that point at rows that exist, dates that come in a sensible order.
Why backend developers need it (and how it saves time)¶
Without a seeding tool, you end up doing one of these, over and over:
- clicking through the Django admin to create a handful of rows by hand,
- writing and maintaining fixture files or a factory per model,
- copying a production dump (and dealing with the privacy headache that brings).
All of it is slow, and the result is usually junk — test test, a@a.com,
every order in the same state — which makes demos look fake and lets bugs hide
until real-shaped data shows up in production.
django-data-seed replaces all of that with one command. It reads your
models, works out the safe insert order, generates realistic values, and
bulk-inserts them — turning "an afternoon of fixtures" into a few seconds.
What is django-data-seed?¶
A Django app that seeds your whole project (or a single model) by introspection. You don't describe your data — it figures your schema out and generates data that fits it:
- realistic values from Mimesis, refined by the field's
name (
city→ a city) and constraints (max_length,choices, …); - foreign keys resolved through a dependency graph so parents exist before children, reusing rows instead of exploding a fresh tree per child;
- rows that are internally coherent (ordered dates, one persona per row);
bulk_createspeed, in-memory uniqueness, and a pre-flight check that refuses to run against a stale schema.
Why django-data-seed (vs the alternatives)¶
| factory_boy | model_bakery | django-seed | django-data-seed | |
|---|---|---|---|---|
| Setup per model | write a Factory | none (junk values) | none | none |
| Realistic values | only if you write them | no | Faker, no inference | inference + locales |
| Whole-project seeding | no | no | yes (unmaintained) | yes |
| Bulk performance | no | no | no | bulk_create, batched |
| Maintained in 2026 | yes | yes | no | yes |
factory_boy and model_bakery are great inside unit tests — but they make
you write a factory per model. django-seed did whole-project seeding but is
unmaintained. django-data-seed fills that gap: zero-config, realistic,
whole-project, fast — and maintained.
Where to next¶
- Getting started — install, configure, first seed.
- Features — everything the engine does, explained.
- CLI reference and Python API.
- Guides — practical recipes.
- Faker vs Mimesis and v0.4 vs v1.0 — the "why" behind the rewrite.