Зависит ли установка уровня изоляции по умолчанию в Django от уровня изоляции по умолчанию в базе данных?
Я прочитал Уровень изоляции в документации Django, и там говорится, как показано ниже:
Как и в PostgreSQL, Django по умолчанию использует уровень изоляции READ COMMITTED уровень изоляции.
Итак, если я использую Django с MySQL, чей уровень изоляции по умолчанию REPEATABLE READ
:
- Является ли установка уровня изоляции по умолчанию в Django также
REPEATABLE READ
?
Or
- Является ли установка уровня изоляции по умолчанию в Django по-прежнему
READ COMMITTED
?
проверьте исходный код django
django.db.backends.mysql.base.py
Здесь вы получите строку в виде
options = settings_dict['OPTIONS'].copy()
isolation_level = options.pop('isolation_level', 'read committed')
if isolation_level:
isolation_level = isolation_level.lower()
if isolation_level not in self.isolation_levels:
raise ImproperlyConfigured(
"Invalid transaction isolation level '%s' specified.\n"
"Use one of %s, or None." % (
isolation_level,
', '.join("'%s'" % s for s in sorted(self.isolation_levels))
))
self.isolation_level = isolation_level
Итак, вы получили ответ.