Один сеанс MySQL на процесс python \ django - PullRequest
4 голосов
/ 20 ноября 2011

Если при запуске программы python \ django я загружаю модуль, который выполняет необработанную пользовательскую команду sql, такую ​​как

from django.db import connection
cursor = connection.cursor()
cursor.execute("SET SESSION wait_timeout=2147483")

, таким образом изменяя переменную сеанс , он будет удерживатьсяна все остальные программы запускаются?т. е. находится ли модуль в том же сеансе MySQL, что и остальная часть кода, запущенного в том же процессе python \ django?

1 Ответ

7 голосов
/ 20 ноября 2011

Ненадежно.

Правильный способ сделать это - использовать init_command в словаре OPTIONS настроек db:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        ...
        'OPTIONS': {
            'init_command': '"SET SESSION wait_timeout=2147483',
        },
    }
}
...