हालाँकि टेबल "myapp_tablename" पहले से ही मौजूद है, जो मैंने करने के बाद त्रुटि रोकना शुरू कर दिया है ।/manage.py myapp --fake को माइग्रेट करता है, DatabaseError ऐसा कोई कॉलम नहीं दिखाता: myapp_mymodel.added_field।
बिल्कुल वही समस्या है!
1. जिस माइग्रेशन नंबर की वजह से ऐसा हो रहा है , उसे पूरी तरह से जांच लें । मान लें कि यह है: 0010।
2. आप की जरूरत है:
./manage.py schemamigration myapp --add-field MyModel.added_field
./manage.py migrate myapp
यदि एक से अधिक फ़ील्ड गायब हैं, तो आपको इसे प्रत्येक फ़ील्ड के लिए दोहराना होगा।
3.अब आप नए माइग्रेशन के एक समूह के साथ उतरते हैं, इसलिए myapp / migrations (0011 और आगे अगर आपको कई फ़ील्ड जोड़ने की आवश्यकता है) से उनकी फ़ाइलों को हटा दें ।
4. इस पर:
./manage.py migrate myapp 0010
अब प्रयास करें ।/manage.py myapp माइग्रेट करें
यदि यह विफल नहीं होता है तो आप तैयार हैं। किसी भी क्षेत्र के लापता नहीं होने पर बस डबलचेक करें।
संपादित करें:
यह समस्या तब भी हो सकती है जब आपके पास एक उत्पादन डेटाबेस होता है जिसके लिए आप दक्षिण और पहले को स्थापित करते हैं, अन्य वातावरण में बनाया गया प्रारंभिक माइग्रेशन डुप्लिकेट करता है जो आपके पास पहले से ही आपके डीबी में है। यहाँ समाधान बहुत आसान है:
पहला माइग्रेशन नकली करें:
./manage myapp 0001 --fake पर माइग्रेट करें
बाकी माइग्रेशन के साथ रोल करें:
./manage myapp पर माइग्रेट करें