Зависит ли установка уровня изоляции по умолчанию в 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

Итак, вы получили ответ.

Вернуться на верх