2010-12-28 9 views
6

Tengo una aplicación django de entorno operativo completo, pero estoy teniendo problemas al migrar al servidor site5.Error durante syncdb de django en el servidor

Cuando inicio de comandos de Django syncdb, mesas de todos mis modelos son creados, pero luego (supongo que cuando se crean tablas de relación), tengo el siguiente error:

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

no lo hago tiene algún problema cuando pido a django que sincronice la configuración regional db, este error solo ocurre en el servidor ...

¿Alguna idea?

+0

Quizás esté utilizando una base de datos utf8, por lo que posiblemente exceda el límite de 1000 bytes (ya que un carácter puede tomar hasta 4 bytes). ¿Qué ocurre si intentas ejecutar 'python manage.py sqlall [package]'? – Nedec

+1

¿Podría proporcionarnos alguna información sobre las versiones de servidor MySQL que está utilizando localmente y en el servidor remoto? Además, algunos modelos pueden ser útiles. Parece que tienes una clave en la columna VARCHAR larga. Quizás estos enlaces te den la pista: http://bugs.mysql.com/bug.php?id=4541 http://bugs.mysql.com/bug.php?id=58187 – dmedvinsky

+0

qué versión de django estás usando ? –

Respuesta

3

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

Prefix support and lengths of prefixes (where supported) are storage engine dependent. For example, a prefix can be up to 1000 bytes long for MyISAM tables, and 767 bytes for InnoDB tables.

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

utf8, a UTF-8 encoding of the Unicode character set using one to three bytes per character

se supera la limitación al crear el índice.

Aunque sqllall le dice que ninguna de sus claves es más larga que el límite, puede exceder la limitación porque está usando utf8 que usa 3 bytes por carácter.

Una razón más posible es que haya utilizado 'unique_together' en el Meta. Esto requerirá un índice más largo que puede causar el problema.

+0

'unique_together' es la causa para mí, ¿alguna idea de cómo solucionarlo? Configuré 'unique_together' porque lo necesito. – JulienD

Cuestiones relacionadas