Welcome¶
django-postgres-extra
aims to make all of PostgreSQL’s awesome features available through the Django ORM. We do this by taking care of all the hassle. As opposed to the many small packages that are available to try to bring a single feature to Django with minimal effort, django-postgres-extra
goes the extra mile with well tested implementations, seamless migrations and much more.
By seamless, we mean that any features we add will work truly seamlessly. You should not have to manually modify your migrations to work with fields and objects provided by this package.
Features¶
Explore the documentation to learn about all features:
-
Adds support for PostgreSQL’s
ON CONFLICT
syntax for inserts. Supports forDO UPDATE
andDO NOTHING
. In other words; single statement, atomic, concurrency safe upserts. -
Built on top Django’s built-in support for hstore fields. Adds support for indices on keys and unique/required constraints. All of these features integrate well with Django’s migrations sytem.
-
Partial (unique) index that only applies when a certain condition is true.
-
Case insensitive index, allows searching a column and ignoring the casing.
-
Adds support for PostgreSQL 11.x declarative table partitioning.
-
Support for
TRUNCATE TABLE
statements (including cascading). -
Support for explicit table-level locks.
-
Support for managing Postgres schemas.