2015-03-06 36 views
5

मेरे पास मौजूदा तालिका होने पर Django की माइग्रेशन सुविधा के बारे में कोई प्रश्न है।मौजूदा तालिका को अनदेखा करते समय ./manage.py माइग्रेट

ContentData 
ContentType 
Faq 
UserLog 
TB_TEAM_INF 

जब मैं ऐसा करने के लिए "./manage.py विस्थापित" तो यह models.py से ऊपर 5 टेबल बना सकते प्रयास करते हैं, मैं एक त्रुटि संदेश मिला एक मौजूदा टेबल न होने के कारण, TB_TEAM_INF।

चूंकि TB_TEAM_INF किसी अन्य टीम द्वारा उपयोग की जाने वाली एक तालिका है, इसलिए मैं तालिका को हटा नहीं सकता। मैं परियोजना के बाधाओं के कारण या तो अलग डेटाबेस का उपयोग नहीं कर सकता। इस मामले में मैं 0001_initial.py जैसे माइग्रेशन फ़ाइल खोलता हूं और माइग्रेशन के दौरान अस्थायी रूप से मॉडल ऑब्जेक्ट, TB_TEAM_INF मैन्युअल रूप से हटा देता हूं।

माइग्रेशन फ़ाइल को मैन्युअल रूप से संपादित करने के बजाय मौजूदा तालिकाओं को अनदेखा करने का कोई बेहतर तरीका है "./manage.py माइग्रेट"?

मैंने कोशिश की - excone = TB_TEAM_INF या --ignore = TB_TEAM_INF विकल्प ./manage.py माइग्रेट के साथ विकल्प, लेकिन ऐसा लगता है कि वे विकल्प स्वीकार नहीं किए जाते हैं। मैं Django 1.7.2 का उपयोग कर रहा हूँ। दस्तावेज़ से

class TB_TEAM_INF(models.Model): 
    ... 
    class Meta: 
     managed = False 

अंश:

उत्तर

9

अपने मॉडल परिभाषा को managed विकल्प जोड़ें

तो झूठी है, कोई डेटाबेस तालिका निर्माण या हटाने के बाद इस मॉडल के लिए प्रदर्शन किया जाएगा।

+0

यह शानदार है! आपकी तरह की सलाह, catavaran के लिए बहुत बहुत धन्यवाद। – ronnefeldt

+0

हां यह काम करता है। फ़ील्ड को अपडेट करने के लिए मुझे 'makemigrations जोड़ना होगा; माइग्रेट --run-syncdb'। – FaithReaper

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