2010-12-28 14 views
6

मेरे पास एक पूर्ण ऑपरेटिंग लोकेल django ऐप है, लेकिन साइट 5 सर्वर पर माइग्रेट करते समय मुझे परेशानी हो रही है।सर्वर पर django के syncdb के दौरान त्रुटि

जब मैं Django के syncdb आदेश लॉन्च करते हैं, मेरे सभी मॉडल 'टेबल बनाई गई हैं, लेकिन फिर (मुझे लगता है कि जब यह संबंध तालिका बनाने है), मैं निम्नलिखित त्रुटि मिली:

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

मुझे नहीं पता जब मैं django को लोकेल डीबी सिंक करने के लिए कहता हूं तो कोई समस्या है, यह त्रुटि केवल सर्वर में होती है ...

कोई विचार?

+0

शायद आप एक utf8-डेटाबेस का उपयोग कर रहे हैं, तो संभवतः आप 1000 बाइट सीमा से अधिक हो जाते हैं (क्योंकि एक वर्ण में 4 बाइट तक लग सकते हैं)। यदि आप 'python manage.py sqlall [package]' चलाने की कोशिश करते हैं तो क्या होता है? – Nedec

+1

क्या आप स्थानीय रूप से और दूरस्थ सर्वर पर उपयोग कर रहे MySQL सर्वर संस्करणों पर कुछ जानकारी प्रदान कर सकते हैं? इसके अलावा, कुछ मॉडल उपयोगी हो सकते हैं। ऐसा लगता है कि आपके पास लंबे VARCHAR कॉलम पर एक कुंजी है। हो सकता है कि ये लिंक आपको सुराग देंगे: http://bugs.mysql.com/bug.php?id=4541 http://bugs.mysql.com/bug.php?id=58187 – dmedvinsky

+0

आप किस django संस्करण का उपयोग कर रहे हैं ? –

उत्तर

0

django में एक बग की तरह दिखता है। इसे 1.2 रिलीज में तय किया जा सकता है उदा। http://code.djangoproject.com/changeset/13040

+0

Django 1.4.3 इसे फिर से मिलें :( –

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

आप सीमा से अधिक है जब आप सूचकांक बनाएँ।

हालांकि स्क्लॉल आपको बताता है कि आपकी कोई भी कुंजी सीमा से अधिक नहीं है, तो आप सीमा से अधिक हो सकते हैं क्योंकि आप utf8 का उपयोग कर रहे हैं जो प्रति चरित्र 3 बाइट्स का उपयोग करता है।

एक और संभावित कारण यह है कि आपने मेटा में 'unique_together' का उपयोग किया है। इसके लिए एक लंबी अनुक्रमणिका की आवश्यकता होगी जो इस मुद्दे का कारण बन सकती है।

+0

'unique_together' मेरे लिए कारण है, किसी भी विचार को ठीक करने का तरीका है? मैंने 'unique_together' सेट किया क्योंकि मुझे इसकी आवश्यकता है। – JulienD

संबंधित मुद्दे