Кирилица при использовании Flask-Migrate

При работе со sqlalchemy часто возникает необходимость определять Enum поля с описание полей на великом и могучем. Делает это вот так:

Определяется список значений

LOG_STATUS_TEXT = [
        u"Завершение заявки",
        u"Заявка в работу",
        u"Отклонение заявки",
        u"Прибытие спеца",
        u"Редактирование заявки",
        u"Снова в обработку",
        u"Удаление заявки"
    ]

Определяется атрибут модели:

from sqlalchemy import Column, Enum
status = Column(Enum(*LOG_STATUS_TEXT), doc=u'статус')

Всё просто, но затем, при попытке провести миграцию вылезает ошибка

File "/home/ffsdmad/Project/dkmt/env/local/lib/python2.7/site-packages/MySQLdb/cursors.py", line 182, in execute
    query = query.encode(db.unicode_literal.charset)
UnicodeEncodeError: 'latin-1' codec can't encode characters in position 41-50: ordinal not in range(256)

Эта ошибка возникает во время обработки кирилических тексто и решается проблема просто, необходимо уточнить урл до базы данных, указаз кодировку которую вы используете и привести к такому виду

SQLALCHEMY_DATABASE_URI = 'mysql://ЛОГИН:ПАРОЛЬ@localhost/БАЗА?charset=utf8'

Вуаля. Спасибо за внимание!

 

Комментариев 0
Нужна авторизация с помощью
Об авторе
Илья Илья

меня можно найти тут