Как изменить схему базы данных в задаче Celery? - PullRequest
0 голосов
/ 08 июня 2019

У меня есть промежуточное ПО, которое изменяет схему базы данных в зависимости от субдомена:

def tenant_schema_from_request(request):
    hostname = hostname_from_request(request)
    tenants_map = get_tenants_map()
    return tenants_map.get(hostname)

def set_tenant_schema_for_request(request):
    schema = tenant_schema_from_request(request)
    with connection.cursor() as cursor:
        cursor.execute("SET search_path to {}".format(schema))

class TenantMiddleware:
    def __init__(self, get_response):
        self.get_response = get_response

    def __call__(self, request):
        set_tenant_schema_for_request(request)
        response = self.get_response(request)
        return response

, но как изменить схему базы данных в задаче Celery?

tasks.py

@shared_task
def send_notification_task(user_id):
    user = User.objects.get(pk=user_id)
    ...

1 Ответ

1 голос
/ 08 июня 2019

Я думаю, что вы ищете .using

Author.objects.using('default').all()

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...