SectorLabs / django-postgres-extra

Bringing all of PostgreSQL's awesomeness to Django.
MIT License
699 stars 96 forks source link
django extra hstore ltree postgresql

django-postgres-extra

:white_check_mark: Tests CircleCI
:memo: License License
:package: PyPi PyPi
:four_leaf_clover: Code coverage Coverage Status
Django Versions 2.0, 2.1, 2.2, 3.0, 3.1, 3.2, 4.0, 4.1, 4.2, 5.0
Python Versions 3.6, 3.7, 3.8, 3.9, 3.10, 3.11
Psycopg Versions 2, 3
:book: Documentation Read The Docs
:warning: Upgrade Upgrade from v1.x
:checkered_flag: Installation Installation Guide
:fire: Features Features & Documentation
:droplet: Future enhancements Potential features

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.

With 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.


:warning: This README is for v2. See the v1 branch for v1.x.


Major features

See the full list

Working with the code

Prerequisites

Getting started

  1. Clone the repository:

    λ git clone https://github.com/SectorLabs/django-postgres-extra.git
  2. Create a virtual environment:

    λ cd django-postgres-extra λ virtualenv env λ source env/bin/activate

  3. Create a postgres user for use in tests (skip if your default user is a postgres superuser):

    λ createuser --superuser psqlextra --pwprompt λ export DATABASE_URL=postgres://psqlextra:@localhost/psqlextra

    Hint: if you're using virtualenvwrapper, you might find it beneficial to put the export line in $VIRTUAL_ENV/bin/postactivate so that it's always available when using this virtualenv.

  4. Install the development/test dependencies:

    λ pip install .[test] .[analysis]

  5. Run the tests:

    λ tox

  6. Run the benchmarks:

    λ py.test -c pytest-benchmark.ini

  7. Auto-format code, sort imports and auto-fix linting errors:

    λ python setup.py fix