मैं django- दक्षिण में django प्रोजेक्ट में डेटाबेस टेबल माइग्रेट करने के लिए django-south का उपयोग कर रहा हूं।Django दक्षिण माइग्रेशन --इन इनपुट के साथ सामग्री को हटा नहीं देता है
# Renaming model from 'Foo' to 'Bar'
db.rename_table('myapp_foo', 'myapp_bar')
db.send_create_signal('myapp', ['Bar'])
हालांकि, मैं fabric का उपयोग स्वचालित रूप से उत्पादन सर्वर करने के लिए अपने आवेदन को तैनात करने की है, और मैं किसी भी माइग्रेशन उपयोगकर्ता इनपुट के बिना चलाना चाहते हैं: और मैं एक मॉडल के रूप a previous question में चर्चा का नाम बदलने कर रहा हूँ। इस के लिए, मैं के रूप में
python manage.py migrate --noinput
यह सिवाय इसके कि send_create_signal
इस मोड में बासी CONTENTTYPES को दूर नहीं करता ठीक काम करता है इस प्रकार है noinput विकल्प के साथ प्रवास आदेश चला।
ऐसा इसलिए है क्योंकि django contenttype managament कमांड update_contenttypes इनपुट इनपुट दिए जाने पर केवल बालों की सामग्री को हटा देता है।
मैं अद्यतन दक्षिण-माइग्रेशन में अपडेट_contenttypes कमांड को दोहरा सकता हूं, लेकिन यह एक अच्छा समाधान प्रतीत नहीं होता है। क्या किसी के पास django कमांड में दोहराने के बिना सामग्री प्रकार को हटाने के तरीके को सुझाव देने के सुझाव हैं?
आप - इनपुट के साथ माइग्रेट क्यों चल रहे हैं? – Thomas
ऐसा इसलिए है क्योंकि मैं मानव संपर्क के बिना उत्पादन सर्वर पर तैनाती करना चाहता हूं। मैं भंडार से कोडेबेस को कपड़े स्क्रिप्ट का उपयोग कर पूरी तरह से स्वचालित सर्वर पर तैनात कर रहा हूं। ऐसा करने में सक्षम होने के लिए मैं यहां मानव इनपुट के बिना समाधान ढूंढ रहा हूं। – yellowcap
तो आपको शायद कमांड को डुप्लिकेट करना चाहिए, या डेटामैपेशन बनाना चाहिए और प्रभावित सामग्री_types मैन्युअल रूप से हटा देना चाहिए। – Thomas