- Switched to uv for development
- Ensure backend cache is thread-safe (#11)
- Removed
TriggerType.snapshot
so that delete triggers will now record snapshots. - Added
TriggerType.snapshot_of
to determine whether snapshots are ofOLD
orNEW
.
- Added a
HISTORY_IGNORE_MODELS
setting to ignore individual models. This should be a list of lowercaseapp_label.model_name
models to exclude.
- Properly specify database alias for ContentType queries
- Properly specify database alias for Django queries in the history backends
CASCADE
when dropping thehistory_record
function.
- Added a
paused
context manager toHistorySession
, to allow for temporarily suspending history recording during a session.
Yanked to correct a bad API decision
- Added a
HISTORY_INCLUDE_UNMANAGED
setting to determine if history should be created for unmanaged (managed = False
) models. Defaults toTrue
.
- Allow
HistorySession
instances to be used as decorators, exposehistory.session
as a convenience method that automatically callsget_backend
- Unit tests for
HISTORY_MIDDLEWARE_IGNORE
- [sqlite] Better handling of nested JSON within update trigger
changes
- Added a
session
CLI subcommand (manage.py triggers session
) to output the SQL for starting a history session (does not work for sqlite, which uses user-defined functions for history sessions).
- Added
history.contrib.migrate
andhistory.contrib.loaddata
apps that provide wrappers of Django management commands that run within history sessions
- Included missing
admin_history.html
template in distribution
- Added a
HISTORY_FILTER
setting for excluding models/fields from history, and excludeBinaryField
s from history by default - Added a
HISTORY_SNAPSHOTS
setting to allow disabling full object snapshots - Store JSONField values in
snapshot
andchanges
as actual JSON on SQLite
- Fixed support for older versions of Postgres without
CREATE OR REPLACE TRIGGER
- Included README in PyPI
- Store all history in a single table, using
ContentType
s - Record a JSON snapshot and changes (when appropriate) for each historical entry
- Introduce a session-based API for better grouping of historical changes
- Allow customization of object history using a swappable model
- Added SQLite support