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)