django-ultratenant 0.0.3

Creator: codyrutscher

Last updated:

Add to Cart

Description:

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.

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.