# What changed in django-dbbackup

> 45 changes in django-dbbackup 5 from its official release notes, upgrade guides and advisories: 12 breaking, 4 new APIs and options. Each one cited. Sources checked 2026-10-26. HTML: https://unstale.sh/pypi/django-dbbackup/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## django-dbbackup 5

### Breaking changes

- The setting is now respected; encrypting to an untrusted public key fails unless the key is trusted or DBBACKUP_GPG_ALWAYS_TRUST is True. (5.4.0) — [release notes](https://github.com/Archmonger/django-dbbackup/releases/tag/5.4.0)
- PostgreSQL OPTIONS values now take precedence over the same variables configured through ENV, DUMP_ENV or RESTORE_ENV. (5.4.0) — [release notes](https://github.com/Archmonger/django-dbbackup/releases/tag/5.4.0)
- RESTORE_ENV is now applied to pg_restore instead of DUMP_ENV; variables previously reaching pg_restore from DUMP_ENV must be put in RESTORE_ENV. (5.4.0) — [release notes](https://github.com/Archmonger/django-dbbackup/releases/tag/5.4.0)
- This setting has been removed; using it now raises an exception. Use Django's built-in STORAGES setting instead. (5.0.1) — [release notes](https://github.com/Archmonger/django-dbbackup/releases/tag/5.0.1)
- The deprecated setting is removed; use DBBACKUP_ADMINS instead. (5.0.0) — [release notes](https://github.com/Archmonger/django-dbbackup/releases/tag/5.0.0)
- DBBACKUP_STORAGE is no longer supported; use Django's STORAGES['dbbackup'] setting instead. (5.0.0) — [release notes](https://github.com/Archmonger/django-dbbackup/releases/tag/5.0.0), [release notes](https://github.com/Archmonger/django-dbbackup/releases/tag/5.0.1)
- DBBACKUP_STORAGE_OPTIONS is no longer supported; use Django's STORAGES['dbbackup'] setting instead. (5.0.0) — [release notes](https://github.com/Archmonger/django-dbbackup/releases/tag/5.0.0)
- Support for Django 3.2 is dropped. (5.0.0) — [release notes](https://github.com/Archmonger/django-dbbackup/releases/tag/5.0.0)
- The PostgreSQL password is supplied through an environment variable to prevent leakage in logs and emails. (5.0.0) — [release notes](https://github.com/Archmonger/django-dbbackup/releases/tag/5.0.0)
- Support for Python 3.7 and 3.8 is dropped. (5.0.0) — [release notes](https://github.com/Archmonger/django-dbbackup/releases/tag/5.0.0)
- The pytz dependency is dropped in favor of Python's standard-library zoneinfo. (5.0.0) — [release notes](https://github.com/Archmonger/django-dbbackup/releases/tag/5.0.0)
- The default SQLite connector changes from SqliteConnector to SqliteBackupConnector. (5.0.0) — [release notes](https://github.com/Archmonger/django-dbbackup/releases/tag/5.0.0)

### New APIs and options

- Adds support for custom metadata writing during operations via this setting. (5.2.0) — [release notes](https://github.com/Archmonger/django-dbbackup/releases/tag/5.2.0)
- Adds signals for backup, restore, media backup, and media restore operations. (5.0.0) — [release notes](https://github.com/Archmonger/django-dbbackup/releases/tag/5.0.0)
- Adds database-agnostic backup and restore using Django's built-in dumpdata and loaddata management commands. (5.0.0) — [release notes](https://github.com/Archmonger/django-dbbackup/releases/tag/5.0.0)
- Adds a connector that backs up SQLite3 databases using the .backup command, which is safe with active connections. (5.0.0) — [release notes](https://github.com/Archmonger/django-dbbackup/releases/tag/5.0.0)

### Behavior and default changes

- PostgreSQL connectors forward sslmode, sslrootcert, sslcert, sslkey, passfile and service from Django database OPTIONS to pg_dump, psql and pg_restore, so backups and restores use the ORM's TLS and client certificate configuration. (5.4.0) — [release notes](https://github.com/Archmonger/django-dbbackup/releases/tag/5.4.0)
- PostgreSQL connectors PgDumpConnector and PgDumpBinaryConnector now default IF_EXISTS to True. (5.0.0) — [release notes](https://github.com/Archmonger/django-dbbackup/releases/tag/5.0.0)
- Errors for missing tools such as pg_dump and mysqldump now provide guidance instead of a generic file-not-found message. (5.0.0) — [release notes](https://github.com/Archmonger/django-dbbackup/releases/tag/5.0.0)
- PostgreSQL connectors automatically use --no-password when PASSWORD is set to None. (5.0.0) — [release notes](https://github.com/Archmonger/django-dbbackup/releases/tag/5.0.0)

### Fixes and other changes

- ADMIN_PASSWORD is now passed to the PostGIS activation step. (5.4.0) — [release notes](https://github.com/Archmonger/django-dbbackup/releases/tag/5.4.0)
- Connector list and dict options are now copied per connector, preventing --exclude-tables from mutating class defaults and affecting other databases or later connectors. (5.4.0) — [release notes](https://github.com/Archmonger/django-dbbackup/releases/tag/5.4.0)
- dbrestore no longer discards configured DROP and PG_OPTIONS values in DBBACKUP_CONNECTORS; --no-drop and --pg-options still take precedence when passed. (5.4.0) — [release notes](https://github.com/Archmonger/django-dbbackup/releases/tag/5.4.0)
- Connector settings configured in DBBACKUP_CONNECTORS are now passed when dbrestore instantiates a connector from backup metadata. (5.4.0) — [release notes](https://github.com/Archmonger/django-dbbackup/releases/tag/5.4.0)
- PostgreSQL HOST values that are Unix or Windows socket paths are now automatically URI-encoded to meet pg_restore command-line requirements. (5.3.1) — [release notes](https://github.com/Archmonger/django-dbbackup/releases/tag/5.3.1)
- The parameter now correctly outputs log messages to the console instead of suppressing all output regardless of verbosity level. (5.3.1) — [release notes](https://github.com/Archmonger/django-dbbackup/releases/tag/5.3.1)
- Fixed backup discovery when location is set in storage options. (5.3.0) — [release notes](https://github.com/Archmonger/django-dbbackup/releases/tag/5.3.0)
- Fixed compression when using DjangoConnector. (5.3.0) — [release notes](https://github.com/Archmonger/django-dbbackup/releases/tag/5.3.0)
- Fixed an issue where paramiko os.stat sizes were larger on the target than on the source. (5.3.0) — [release notes](https://github.com/Archmonger/django-dbbackup/releases/tag/5.3.0)
- Metadata files are now removed during clean-up. (5.1.2) — [release notes](https://github.com/Archmonger/django-dbbackup/releases/tag/5.1.2)
- The dbbackup metadata file is always written as bytes, supporting storage backends that enforce bytes content. (5.1.1) — [release notes](https://github.com/Archmonger/django-dbbackup/releases/tag/5.1.1)
- New backups include an additional metadata file to prevent restoring a backup with a different database connector. (5.1.0) — [release notes](https://github.com/Archmonger/django-dbbackup/releases/tag/5.1.0)
- Compressed media backups are restored using gzip.GzipFile instead of tarfile's gzip decompression algorithm. (5.1.0) — [release notes](https://github.com/Archmonger/django-dbbackup/releases/tag/5.1.0)
- Parsing of excess whitespace in comma-separated arguments passed with -d is fixed. (5.0.0) — [release notes](https://github.com/Archmonger/django-dbbackup/releases/tag/5.0.0)
- The -O flag now routes S3 URIs to the storage backend instead of attempting to write to the local filesystem. (5.0.0) — [release notes](https://github.com/Archmonger/django-dbbackup/releases/tag/5.0.0)
- Restore no longer raises io.UnsupportedOperation when a file object does not support fileno(). (5.0.0) — [release notes](https://github.com/Archmonger/django-dbbackup/releases/tag/5.0.0)
- Encryption support is fixed when using gnupg 5.x. (5.0.0) — [release notes](https://github.com/Archmonger/django-dbbackup/releases/tag/5.0.0)
- The -O flag now routes S3 URIs to the storage backend instead of attempting to write to the local filesystem. (5.0.0) — [release notes](https://github.com/Archmonger/django-dbbackup/releases/tag/5.0.0)
- Path corruption is fixed for restored files whose paths contain "media". (5.0.0) — [release notes](https://github.com/Archmonger/django-dbbackup/releases/tag/5.0.0)
- Using --clean now automatically enables --if-exists to fix PostgreSQL restore errors with identity columns. (5.0.0) — [release notes](https://github.com/Archmonger/django-dbbackup/releases/tag/5.0.0)
- Temporary file locking issues during SQLite backups on Windows are fixed. (5.0.0) — [release notes](https://github.com/Archmonger/django-dbbackup/releases/tag/5.0.0)
- Restore no longer fails when multi-line TextField content contains semicolons. (5.0.0) — [release notes](https://github.com/Archmonger/django-dbbackup/releases/tag/5.0.0)
- SQLite restore no longer encounters no such table errors. (5.0.0) — [release notes](https://github.com/Archmonger/django-dbbackup/releases/tag/5.0.0)
- SQLite restore no longer encounters UNIQUE constraint errors. (5.0.0) — [release notes](https://github.com/Archmonger/django-dbbackup/releases/tag/5.0.0)
- SQLite restore no longer encounters index, trigger, or view already-exists errors. (5.0.0) — [release notes](https://github.com/Archmonger/django-dbbackup/releases/tag/5.0.0)
