2010-12-28 20 views
6

Ho un'app django locale operativa completa, ma ho problemi durante la migrazione al server site5.Errore durante syncdb del django sul server

Quando lancio il comando di Django syncdb, vengono create le tabelle tutti i miei modelli, ma poi (immagino quando è la creazione di tabelle di relazione), ho ottenuto il seguente errore:

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

non lo faccio ho qualche problema quando chiedo a django di sincronizzare il db locale, questo errore si verifica solo nel server ...

Qualche idea?

+0

Forse si sta utilizzando un database utf8, quindi è possibile superare il limite di 1000 byte (poiché un carattere può richiedere fino a 4 byte). Cosa succede se provate a eseguire 'python manage.py sqlall [pacchetto]'? – Nedec

+1

Puoi fornire alcune informazioni sulle versioni del server MySQL che stai utilizzando localmente e sul server remoto? Inoltre, alcuni modelli potrebbero essere utili. Sembra che tu abbia una chiave sulla lunga colonna VARCHAR. Forse questi link ti daranno l'indizio: http://bugs.mysql.com/bug.php?id=4541 http://bugs.mysql.com/bug.php?id=58187 – dmedvinsky

+0

quale versione di django stai usando ? –

risposta

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

si supera il limite quando si crea INDEX.

Anche se sqlall ti dice che nessuna chiave è più lunga del limite, puoi superare la limitazione perché stai usando utf8 che usa 3 byte per carattere.

Un altro motivo possibile è che nel Meta è stato utilizzato "unique_together". Ciò richiederà un indice più lungo che potrebbe causare il problema.

+0

'unique_together' è la causa per me, qualsiasi idea su come risolvere il problema? Ho impostato 'unique_together' perché ne ho bisogno. – JulienD

Problemi correlati