Проблемы сопоставления базы данных django-моделей: объявить поле, поддерживающее юникод?

Я столкнулся с этой проблемой. Когда я не могу назначить строку Unicode для models.CharField,

DatabaseError: (1267, "Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '='")

Я нашел это решение, но, похоже, оно не работает для меня. База данных возвращает эту ошибку:

Error Code: 1025. Error on rename of './test_database/#sql-272e_1ba' to './test_database/[MY_TABLE_NAME]' (errno: 150)

Более того, кажется, что все эти решения работают только после создания таблицы или изменяют вывод python manage.py sql APP_NAME и создают таблицы вручную.

Есть ли способ исправить это с момента первоначального объявления моделей django в коде python, так что manage.py syncdb будет просто создавать правильные таблицы?

1 ответ

Решение

Похоже, это проблема вашей конфигурации базы данных, а не Django. Я предполагаю, что независимо от того, какую БД вы используете, она настроена на использование latin1_swidish_ci для новых таблиц. Вы можете подключить syncdb и изменить таблицу там, но я думаю, что вам лучше исправить конфигурацию базы данных напрямую.

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