django-pgschemas
This package uses Postgres 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 routed via:
- URL using subdomain or subfolder on shared subdomain
- Session
- Headers
- Public schema should not be used for storing the main site data, but the true shared data across all tenants. Table "overriding" via search path is not encouraged.
- Management commands can be run on multiple schemas via wildcards, either sequentially or in parallel using multithreading.
Documentation
https://django-pgschemas.readthedocs.io/
Version 1.0 has several breaking changes from the 0.* series. Please refer to this discussion for details and bug reports.
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
ormake coverage
. The tests for this project live inside a small django project calledsandbox
.
Credits
- Tom Turner for django-tenants.
- Bernardo Pires for django-tenant-schemas.
- Denish Patel for pg-clone-schema