2009-06-09 14 views
7

यह समस्या मूल रूप से पिछले प्रश्न here जैसा ही है।दक्षिण माइग्रेशन त्रुटि ऐप "इस माइग्रेशन में उपलब्ध नहीं है"

हालांकि, उत्तर मेरे लिए काम नहीं करता है। मैंने दक्षिण के ट्रंक संस्करण को स्थापित किया है, मैन्युअल रूप से माइग्रेशन फ़ाइल में आयात लाइन में मैन्युअल रूप से प्रवेश किया है, और एक अलग निर्देशिका में पूर्ण 'स्टार्ट माइग्रेशन' किया है और 0001_initial.py फ़ाइल की जांच की है।

मेरे पास एक Django प्रोजेक्ट है जिसमें कई अनुप्रयोग हैं, उनमें से एक (नाम 'कोर') दूसरों द्वारा संदर्भित किया जा रहा है। दक्षिण माइग्रेशन एक नई तालिका बनाने की कोशिश कर रहा है, जिसमें एक कॉलम है जिसमें कोर में मॉडल के लिए विदेशी कुंजी है।

मैं वर्तमान में प्रश्न (0006) में माइग्रेशन में कोर आयात कर रहा हूं, और मैंने इसे माइग्रेशन 0001 में भी जोड़ा, हालांकि ऐसा लगता है कि इससे कोई फर्क नहीं पड़ता।

इससे पहले कि मैं कुछ कठोर करता हूं, उस क्षेत्र को हटाने, माइग्रेशन चलाने और मैन्युअल रूप से फ़ील्ड जोड़ने की तरह, क्या इस दक्षिण मुद्दे को ठीक करने के लिए एक ज्ञात मैन्युअल वर्कअराउंड है? इसलिए जैसे एक प्रवास बनाई गई करने के बाद

python manage.py startmigration <appname> migrate_core --freeze core 
+0

ठीक है, मैं इसे मैन्युअल रूप से कर रहा हूं। मुझे हाल ही में एक नया मॉडल जोड़ना पड़ा है, और मुझे एक ही समस्या मिल रही है। तो, कोई समाधान? या क्या मैं Django Evolution पर स्विच करता हूं, या बस छोड़ देता हूं और एसक्यूएल का उपयोग करता हूं? – ShawnMilo

उत्तर

11

आप शायद --freeze विकल्प इस तरह का उपयोग नहीं किया

./manage.py startmygration APPNAME --model NewModel

यह त्रुटि होता है: "इस 'माइग्रेशन में ऐप' कोर 'से मॉडल' प्रोग्राम 'उपलब्ध नहीं है।"

इस तरह माइग्रेशन पुनः यह ठीक करता है:

./managepy startmigration APPNAME --model NewModel --freeze core.Program

बस "--freeze मूल" कर मेरे लिए चाल नहीं किया

1

आप किसी अन्य django ऐप में रहने वाली कक्षा तक पहुंचने का प्रयास करके यह त्रुटि प्राप्त कर सकते हैं। यह सुनिश्चित करने के लिए जांचें कि जिस वर्ग को आप एक्सेस करने का प्रयास कर रहे हैं वह models शब्दकोश में है।

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