Overview of django-postgres-extra features
masterdjango-postgres-extra extends the Django ORM to provide native support for advanced PostgreSQL features. Unlike smaller, single-feature packages, this library provides well-tested implementations that integrate seamlessly with Django migrations, meaning you do not need to manually modify migration files to use its fields and objects.
Key capabilities include:
- Conflict Handling: Atomic, concurrency-safe upserts using PostgreSQL's
ON CONFLICTsyntax (supportsDO UPDATEandDO NOTHING, including conditional updates). - Table Partitioning: Support for PostgreSQL 11.x declarative table partitioning, fully integrated into Django migrations. Includes commands for automatic time-based partition creation.
- Views & Materialized Views: Ability to define views and materialized views as standard Django models, integrated into migrations.
- Locking: Support for explicit table-level locks.
- Schema Management: Tools for creating and dropping PostgreSQL schemas.
- Truncation: Support for
TRUNCATE TABLEstatements, including cascading deletes. - Advanced Indexing:
- Partial unique indices (conditional application).
- Case-insensitive indices.
- Multi-field unique indices.
- HStore Constraints: Unique and required constraints on specific
hstorekeys.