Ошибка во время syncdb Django на сервере

У меня полнофункциональное приложение django для локали, но у меня возникают проблемы при переходе на сервер site5.

Когда я запускаю Джанго syncdb команда, все таблицы моих моделей созданы, но затем (я предполагаю, что при создании таблиц отношений) я получил следующую ошибку:

_mysql_exceptions.OperationalError: (1071, 'Specified key was too long; max key length is 1000 bytes')

У меня нет никаких проблем, когда я прошу django синхронизировать базу данных, эта ошибка возникает только на сервере...

Любая идея?

2 ответа

http://dev.mysql.com/doc/refman/5.0/en/create-index.html

Поддержка префиксов и длины префиксов (если они поддерживаются) зависят от механизма хранения. Например, префикс может иметь длину до 1000 байт для таблиц MyISAM и 767 байт для таблиц InnoDB.

http://dev.mysql.com/doc/refman/5.0/en/charset-unicode.html

utf8, кодировка UTF-8 набора символов Unicode с использованием от одного до трех байтов на символ

Вы превышаете ограничение, когда вы создаете индекс.

Хотя sqlall сообщает вам, что ни один из ваших ключей не длиннее ограничения, вы можете превысить ограничение, потому что вы используете utf8, который использует 3 байта на символ.

Еще одна возможная причина в том, что вы использовали "unique_together" в мета-версии. Это потребует более длинного индекса, который может вызвать проблему.

Похоже, ошибка в Django. Это может быть исправлено в версии 1.2, например, http://code.djangoproject.com/changeset/13040

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