2015-05-24 10 views
10

चूंकि Django 1.8 makemigrations कमांड के पास निर्मित माइग्रेशन फ़ाइल के लिए कस्टम नाम निर्दिष्ट करने के लिए --name, -noption है।क्या Django माइग्रेशन फ़ाइल का नाम बदलना सुरक्षित है?

मैं जानना चाहता हूं कि यह स्वचालित रूप से जेनरेट किए गए नाम के साथ माइग्रेशन फ़ाइल बनाने के लिए Django के पुराने संस्करणों में सुरक्षित है या फिर मैन्युअल रूप से फ़ाइल का नाम बदलें। ऐसा लगता है कि यह उम्मीद के रूप में काम करता है। क्या कोई संभावित जोखिम है?

उत्तर

15

यह मामूली चेतावनी के साथ काम करता है: Django अब नहीं पता होगा कि नामित माइग्रेशन लागू किया गया है।

तो एक प्रवास का नाम बदलने के लिए कदम हैं:

  1. फ़ाइल का नाम बदलें।
  2. किसी भी निर्भरता को नई फ़ाइल में दोबारा दर्ज करें।
  3. यदि नामित माइग्रेशन पहले से ही लागू किया गया था, तो इसे --fake का उपयोग करके फिर से लागू करें।

यदि यह एक नया नया माइग्रेशन है, 2 और 3 लागू नहीं होंगे, और यह उनका नाम बदलने के लिए बिल्कुल ठीक है।

6

यह हर बार माइग्रेशन स्क्वैश होने पर Django में होता है। एक नई फ़ाइल जेनरेट की गई है जिसमें क्लास वेरिएबल replaces है, इसमें माइग्रेशन फ़ाइलों को प्रतिस्थापित किया जा रहा है।

तो एक फ़ाइल माइग्रेशन फ़ाइल प्रवासन कक्षा में निम्नलिखित चर में जोड़ने के नाम बदलने के लिए:

replaces = [('app name', 'migration file name'), ] 

और सब कुछ काम करता है जैसे कि यह फ़ाइल परिवर्तन से पहले किया था।

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