Как сделать Django работать с неподдерживаемыми драйверами MySQL, такими как Gevent-Mysql или Joysql MySQL?

StackOverflow https://stackoverflow.com/questions/2636536

Вопрос

Я заинтересован в беге Django на асинхронизированной рамки, такой как совпадение или Gevent. Оба рамки поставляются со своим собственным async MySQL водителем.

Проблема Django только официально поддерживает MySQLDB. Что мне нужно сделать, чтобы сделать Django работать с драйверами MySQL, которые приходят с Gevent или Callence?

Есть ли пошаговое направление где-то, что я могу следовать? Это главное обязательство?

Спасибо.

Это было полезно?

Решение

Три приветствия для предложения @ Traviscline пойти с Pymysql.. Отказ Его предложение было основано на Этот пост от Mozilla. Отказ все, что нужно, это простой патч до вашего файла manage.py

#!/usr/bin/env python
+try:
+    import pymysql
+    pymysql.install_as_MySQLdb()
+except ImportError:
+    pass 

Изменение импорта в файл настроек и обезьяна () поскольку PymySQL является чистым драйвером Python.

Трэвис упомянул, что он тестирует для совместимости, изменив импорт и запустив ненужные для PymySQL, MySQLDB и MyConnpy.

Обратите внимание, что уже есть Примеры более тонких деталей, чтобы осмотреть для - Но в целом это элегантное, ремонтное решение. Я буду обновлять, когда я получаю это бегать в производстве!

Другие советы

Я был успешным в том, чтобы PymySQL работать с Django, выполняя следующее:

  1. Прокомментируйте блок TRY - кроме в начале Base.py. Файл, где MySQLDB импортируется.
  2. Добавьте следующие четыре строки в Base.py.

    try:
        import pymysql as Database
    except ImportError:
        pass
    
  3. Как упоминалось в ссылке, что Egbutter. Опубликовано, перейдите на файл base.py и найдите-заменить MySQLdb с участием pymysql В соответствующих участках файла, т. Е. Не мешайте изменять сообщения об ошибках (вы могли бы, но это зависит от вас).

  4. Сохранить BASE.PY и запустите следующую команду из местоположения APT, чтобы увидеть начать сервер.

    python manage.py runserver
    
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top