Source code for ferrosoft.apps.ferrobase.tenant.utils
from django.db import transaction, DEFAULT_DB_ALIAS
from ferrosoft.apps.ferrobase.tenant.context import get_current_tenant
[docs]
def tenant_db_connection():
"""Get django.db.connection object for current tenant."""
from django.db import connections
tenant = get_current_tenant()
return connections[DEFAULT_DB_ALIAS if tenant is None else tenant.database_name]
[docs]
def tenant_db_transaction():
"""Get transaction context manager for database connection of current tenant."""
tenant = get_current_tenant()
if tenant is None:
return transaction.atomic()
return transaction.atomic(using=tenant.database_name)