Как использовать Django 1.4 с Xeround?

В соответствии с примечаниями к выпуску Xeround'а они не поддерживают точки сохранения, и я не могу понять, как отключить поддержку этого в Django 1.4. Кто-нибудь знает, как этого добиться?

1 ответ

Решение

У меня такая же проблема. Кажется, что Django проверяет версию MySql только тогда, когда решает, использовать ли точки сохранения или нет. Xeround, вероятно, использует какой-то нестандартный движок базы данных, который не поддерживает точки сохранения, даже если версия MySql достаточно высока.

Быстрое исправление (только для тестирования) - просто отредактировать django/db/backends/mysql/base.py переопределить логику:

До:

self.features.uses_savepoints = self.get_server_version() >= (5, 0, 3)

После:

self.features.uses_savepoints = False

Я проверил это, и это, похоже, не вызывало проблем.

Примечание: редактировать исходные тексты django напрямую, как это, не рекомендуется, вам, вероятно, следует просто создать свой собственный внутренний модуль db, создав подклассы или скопировав модуль mysql и поместив его в свой проект. Не забудьте обновить конфигурацию базы данных settings.py, чтобы она указывала на ваш модуль.

Другие вопросы по тегам