django-pgschemas

Multi-tenancy on Django using PostgreSQL schemas.


Keywords
django, tenants, schemas, multi-tenancy, postgresql, python
License
MIT
Install
pip install django-pgschemas==0.15.1

Documentation

django-pgschemas

Packaging: poetry Code style: black Build status Documentation status Code coverage PyPi version Downloads

This app uses PostgreSQL schemas to support data multi-tenancy in a single Django project. It is a fork of django-tenants with some conceptual changes:

  • There are static tenants and dynamic tenants. Static tenants can have their own apps and urlconf.
  • Tenants can be simultaneously routed via subdomain and via subfolder on shared subdomain.
  • Public is no longer the schema for storing the main site data. Public should be used only for true shared data across all tenants. Table "overriding" via search path is no longer encouraged.
  • Management commands can be run on multiple schemas via wildcards - the multiproc behavior of migrations was extended to just any tenant command.

Documentation

https://django-pgschemas.readthedocs.io/

Contributing

  • Join the discussion at https://github.com/lorinkoz/django-pgschemas/discussions.
  • PRs are welcome! If you have questions or comments, please use the discussions link above.
  • To run the test suite run make or make coverage. The tests for this project live inside a small django project called dpgs_sandbox. Database password and database host can be set through the environment variables DATABASE_PASSWORD and DATABASE_HOST.

Credits