djangoultratenant 0.0.3
Django Ultratenant
Pitch (Portuguese)
Part 1:
https://www.loom.com/share/a90948958c184a0fb64868bbb0230a28
Part 2:
https://www.loom.com/share/52fd66b6f5a047f88a9fed56c1cf70d1
What is
Django multi-tenant library that implements diferent approaches
Simple API with minimal setup
Transparent for the application
Supported isolations approaches:
multi-db
multi-schema
tenant-id
Supported URL approaches: subdomain and path
tenant.url.com
url.com/tenant/admin/
Support multiple databases
Good documentation
Contributing
Rules to contribute
Clone the code
git clone https://github.com/HBN3tw0rk/django-ultratenant
cd django-ultratenant
git checkout main
Or
git clone git@github.com:HBN3tw0rk/django-ultratenant.git
cd django-ultratenant
git checkout main
Setup the project
python -m venv .venv
source .venv/bin/activate
pip install -U pip
pip install ".[test]"
pre-commit install
pre-commit autoupdate
pytest
Create a new branch
git fetch origin
git checkout -b task/branch-name-you-work-issue
Create a pull request to the branch main
Ultimate Django app for multi-tenant.
Documentation: https://django-ultratenant.readthedocs.io.
Installation
pip install django-ultratenant
How to Use
TODO
Alternatives
https://github.com/django-tenants/django-tenants/ - only Postgres
with multi-schema
https://github.com/citusdata/django-multitenant - only Postgres
(with Citus extension)
Base projects
https://github.com/henriquebastos/pds-multi-tenant/
https://github.com/eli-junior/djangoDefault/
MVP
setup and pip
SQLite3 support
multi-db
tenant on URL path
documetation about how customize manage.py
API
# settings.py
from ultratenant.multidb import Databases
...
MIDDLEWARE = [
...
'ultratenant.path.Middleware',
]
...
DATABASES = Databases(config('DATABASE_URL', cast=dburl))
DATABASE_ROUTERS = ['ultratenant.multidb.Router']
(maybe it won't be necessary)
# urls.py
...
from ultimate_tenants.urls import tenants_path
urlpatterns = tenants_path([
path('admin/', admin.site.urls),
path('', index, name='index'),
])
# url.com/tenant/admin
Roadmap
other databases supported by Django:
PostgreSQL,
MariaDB,
MySQL,
Oracle
multi-schema
tenant-id
custom [manage.py]{.title-ref} to access different tenants
cookiecutter to create a new project
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
[Unreleased]
[0.0.1] - 2022-07-31
Added
First release on PyPI.
For personal and professional use. You cannot resell or redistribute these repositories in their original state.
There are no reviews.