Skip to content

Migrating from 0.4.x to 1.0

1.0.0 is a rewrite and a breaking release. Read this before upgrading. For the reasoning and a full before/after, see v0.4 vs v1.0.

1. Backup / log-entry / current-user features removed

The DjangoSeedDataBackUpModel, DjangoSeedDataLogEntryModel, the global pre_save/post_delete receivers, CurrentUserMiddleware, and thread-local user tracking are gone. In 0.4.x these registered receivers with no sender= filter, so they ran on every save() in your project — and their migrations were gitignored, so the tables never existed when installed from PyPI.

For an audit trail, use a package built for it: django-simple-history or django-auditlog. Remove any DJANGO_SEED_* backup/log settings and drop CurrentUserMiddleware from MIDDLEWARE.

2. Bundled test models no longer ship

0.4.x defined ~25 DjangoDataSeed* models inside the installed package, so migrate created ~25 junk tables in your database. These are gone. After upgrading, you can create a migration to drop the leftover tables from your project.

3. --no-of-objects-to-create--count

# old
python manage.py seeddata --no-of-objects-to-create 50 --django-app shop
# new
python manage.py seeddata shop --count 50

The old flags (--no-of-objects-to-create, --no-of-objects, --django-app, --django-model) still work but print a deprecation warning. They are removed in 1.1.

4. Targets are positional

Apps and models are now positional arguments: seeddata shop, seeddata shop.Book. Pass several at once, and use --exclude to skip.

5. Version floors raised

Python ≥ 3.10 and Django ≥ 4.0 are required.

What you gain

Realistic values via field-name inference, correct foreign-key ordering with FK reuse (no more row explosion), row coherence, pre-flight migration/schema checks, bulk_create speed, reproducible runs with --seed, a --dry-run plan, JSON output for CI, and a public seed() / SeedPlan Python API.