2015-05-29 8 views
8

मैं हमारी Django वेबसाइट से एक अनावश्यक तालिका और मॉडल को हटा रहा हूं। मैं migrations.DeleteModel (...) कहा जाता है से पहले सभी विदेशी कुंजी संदर्भ निकाल दिया है, लेकिन मैं अभी भी प्राप्त कर रहा शीघ्र निम्नलिखित जब मैं माइग्रेशन चला:अप्रयुक्त मॉडल को हटाने, बाली सामग्री प्रकार संकेत

निम्न सामग्री प्रकारों को बासी कर रहे हैं और करने की आवश्यकता है नष्ट कर दिया:

myapp | MyDeletedModel 

किसी भी एक विदेशी कुंजी द्वारा इन सामग्री प्रकार से संबंधित वस्तुओं को भी हटा दिया होगा। क्या आप वाकई इन सामग्री प्रकारों को मिटाना चाहते हैं? यदि आप अनिश्चित हैं, तो जवाब 'नहीं'।

Type 'yes' to continue, or 'no' to cancel: yes 

मैं उलझन में हूँ कारण है कि मैं यह संकेत प्राप्त कर रहा वहाँ एक रास्ता मैं दिखा जब हम उन्हें लाइव से शीघ्र रोक सकता है? हम एक सीआई वातावरण जहां हम जवाब देने के लिए उन उपलब्ध नहीं है का उपयोग करें "हाँ" या "नहीं"

धन्यवाद

उत्तर

11

CONTENTTYPES ढांचे संदर्भ टेबल मॉडल करने के लिए होता है। इस मामले में, आपके पास अभी तक हटाई गई तालिका के लिए एक पुराना संदर्भ है। यह yes का उत्तर देने के लिए पूरी तरह से सहेजता है और बाली सामग्री प्रकार को हटा देता है। यदि आप उस तालिका का नाम बदल चुके हैं, जिस पर GenericForeignKey है, तो यह एक अलग कहानी होगी, जिस स्थिति में अन्य ऑब्जेक्ट्स उस ContentType पर होंगे, और हटाएं उन संबंधों के साथ कैस्केड होंगी।

एक जीवंत वातावरण में, आप इस प्रॉम्प्ट को सप्रेस करने के लिए --noinput विकल्प पास कर सकते हैं। हालांकि, यह no पर डिफ़ॉल्ट होगा। आमतौर पर यह वास्तव में कुछ पुरानी सामग्री के लिए समस्या नहीं है।

+0

धन्यवाद @knbk, मैं यह देखने के लिए हमारे सीआई लड़के से जांच करूंगा कि हम --noinput के लिए माइग्रेशन कैसे चलाते हैं, अगर हम इसे एक बार जवाब देते हैं, तो क्या यह जवाब याद रखेगा, या क्या हमें हर माइग्रेशन को संकेत दिया जाएगा? –

+0

हर बार जब आप एक माइग्रेशन चलाते हैं जो मॉडल का नाम बदलता या हटा देता है तो आपको संकेत दिया जाएगा। – knbk

+0

ठीक है, मैं django_contenttype तालिका को देख रहा हूं। जब मैंने हाँ का उत्तर दिया तो अब मैं तालिका के लिए एक पंक्ति नहीं देखता। लेकिन अगर मैं जवाब नहीं देता, तो यह अगले माइग्रेशन को संकेत देगा, है ना? –

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