我有一个完全操作的locale应用程序,但是我在迁移到site5服务器时遇到了麻烦。
当我启动django的syncdb
命令时,我的所有模型表都被创建了,但是(我猜当它创建关系表时),我得到了以下错误:
_mysql_exceptions.OperationalError: (1071, 'Specified key was too long; max key length is 1000 bytes')
当我要求django同步locale时,没有任何问题,这个错误只发生在服务器中.
有什么想法吗?
发布于 2012-01-17 21:06:56
http://dev.mysql.com/doc/refman/5.0/en/create-index.html
前缀支持和前缀长度(在支持的地方)取决于存储引擎。例如,对于MyISAM表,前缀可以长达1000个字节,对于InnoDB表,前缀可以高达767字节。
http://dev.mysql.com/doc/refman/5.0/en/charset-unicode.html
utf8,使用每个字符一到三个字节对Unicode字符集进行UTF-8编码。
您在创建索引时超过了限制。
虽然sqlall告诉您您的键没有一个超过限制,但您可能会超过限制,因为您使用的是utf8,它每个字符使用3个字节。
另一个可能的原因是您在Meta中使用了“unique_together”。这将需要一个较长的索引,这可能导致问题。
发布于 2010-12-30 07:07:05
在django看上去是个窃听器。它可以通过例如http://code.djangoproject.com/changeset/13040在1.2版本中修复
https://stackoverflow.com/questions/4547479
复制相似问题