Skip to main content

History tracking for Django and Postgres

Project description

django-pghistory provides automated and customizable history tracking for Django models using Postgres triggers. Users can configure a number of event trackers to snapshot every model change or to fire specific events when certain changes occur in the database.

In contrast with other Django auditing and history tracking apps (seen here), django-pghistory has the following advantages:

  1. No instrumentation of model and queryset methods in order to properly track history. After configuring your model, events will be tracked automatically with no other changes to code. In contrast with apps like django-reversion, it is impossible for code to accidentally bypass history tracking, and users do not have to use a specific model/queryset interface to ensure history is correctly tracked.

  2. Bulk updates and all other modifications to the database that do not fire Django signals will still be properly tracked.

  3. Historical event modeling is completely controlled by the user and kept in sync with models being tracked. There are no cumbersome generic foreign keys and little dependence on unstructured JSON fields for tracking changes, making it easier to use the historical events in your application (and in a performant manner).

  4. Changes to multiple objects in a request (or any level of granularity) can be grouped together under the same context. Although history tracking happens in Postgres triggers, application code can still attach metadata to historical events, such as the URL of the request, leading to a more clear and useful audit trail.

To get started, read the django-pghistory docs. The docs covers how to set up and configure automated event tracking in your application, along with how to aggregate events for objects and visualize them in your admin/application.

Documentation

View the django-pghistory docs here.

Installation

Install django-pghistory with:

pip3 install django-pghistory

After this, add pghistory to the INSTALLED_APPS setting of your Django project.

Contributing Guide

For information on setting up django-pghistory for development and contributing changes, view CONTRIBUTING.rst.

Primary Authors

Other Contributors

  • @shivananda-sahu

  • @asucrews

  • @Azurency

  • @dracos

  • @adamchainz

  • @eeriksp

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-pghistory-2.2.1.tar.gz (18.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

django_pghistory-2.2.1-py3-none-any.whl (20.6 kB view details)

Uploaded Python 3

File details

Details for the file django-pghistory-2.2.1.tar.gz.

File metadata

  • Download URL: django-pghistory-2.2.1.tar.gz
  • Upload date:
  • Size: 18.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.15 CPython/3.10.6 Linux/5.13.0-1023-aws

File hashes

Hashes for django-pghistory-2.2.1.tar.gz
Algorithm Hash digest
SHA256 e8c6e714b4de3b5f5d6e3b71c534400d84a3ab4012fa81abb22b5870b133ebd5
MD5 74245095768a82a4d97ec2258ec0dbb5
BLAKE2b-256 f741d7c05739bddb69e0aa073291b29d0f74b75c9eba1e40b75b9076d2ad375b

See more details on using hashes here.

File details

Details for the file django_pghistory-2.2.1-py3-none-any.whl.

File metadata

  • Download URL: django_pghistory-2.2.1-py3-none-any.whl
  • Upload date:
  • Size: 20.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.15 CPython/3.10.6 Linux/5.13.0-1023-aws

File hashes

Hashes for django_pghistory-2.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 15a6dc1c89621c7238202b08544364b9c0ad2e9cdc67de0f36742325ee1b55e5
MD5 82874d74f42f33b1f8ede29e4ace688e
BLAKE2b-256 14ce1928bb496aa108a25d2da243b8d0201186cbde93134ef3c1770833c6b7ba

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page