Note - This repository is archived. All of the functionality previously offered by django-pgconnection is now available in Django's connection hooks
django-pgconnection
provides primitives for overriding Postgres
connection and cursor objects, making it possible to do the following:
- Hook into SQL generation. For example, it is not possible to log every time a SQL statement is executed in Django or annotate SQL with comments so that additional metadata is logged when executing queries. The pgconnection.pre_execute_hook context manager allows one to hook into SQL before it is executed.
- Route database traffic to a different database. Although Django provides the ability to construct custom database routers, routing to a different database has to be instrumented throughout code and can be tedious and error prone. The pgconnection.route context manager can route any database operations to a different database, even if it's an external management command that has not been instrumented to use a different database.
The documentation has
examples of how to use django-pgconnection
.
View the django-pgconnection docs here.
Install django-pgconnection with:
pip3 install django-pgconnection
After this, add pgconnection
to the INSTALLED_APPS
setting of your Django project.
In order to use connection routing and hooks, one must configure
the DATABASES
setting in settings.py
like so:
DATABASES = pgconnection.configure({ 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': 'mydatabase', } })
For information on setting up django-pgconnection for development and contributing changes, view CONTRIBUTING.rst.
- @wesleykendall (Wes Kendall)