2016-08-17 17 views
6

जब python manage.py migrate चल मैं इस त्रुटि का सामना करना:, जब यहDjango manage.py: प्रवासन अपनी निर्भरता से पहले लागू

<appname> 
[X] 0001_squashed_0015_auto_<date1>_<time1> (15 squashed migrations) 
[X] 0016_auto_<date2>_<time2> 
[ ] 0017_<modelname>_squashed_0019_auto_<date3>_<time3> (3 squashed migrations) 

मैं Django-एक्सटेंशन कल बाहर कोशिश कर रहा था:

django.db.migrations.exceptions.InconsistentMigrationHistory: Migration 
<appname>.0016_auto_<date2>_<time2> is applied before its dependency 
<appname>.0001_squashed_0015_auto_<date1>_<time1> 

चल showmigrations रिटर्न कुछ प्रत्यक्ष एसक्यूएल प्रश्नों को चलाने के बाद सब गड़बड़ हो गए और मैंने गिट का उपयोग करके कड़ी मेहनत की। मैं अभी भी माइग्रेशन के बारे में सीख रहा हूं, इसलिए मुझे समझ में नहीं आता कि क्या गलत है, क्योंकि ऐसा लगता है कि दोनों माइग्रेशन पहले ही लागू हो चुके हैं। मुझे आशा है कि मैंने अपनी समस्या का उत्तर जानने के लिए आवश्यक सब कुछ प्रदान किया है।

आपकी मदद के लिए धन्यवाद!

उत्तर

5

आपने माइग्रेशन को घटा दिया है, इसलिए 0016_auto_<date2>_<time2> पर निर्भरताओं में से एक अब नव निर्मित स्क्वैश माइग्रेशन का हिस्सा था। इस बीच 0016_auto_<date2>_<time2> पहले से ही चलाया जा चुका है और अब आप स्क्वैश माइग्रेशन चलाने की कोशिश कर रहे हैं।

मैं व्यक्तिगत रूप से नहीं जानता कि इसे स्वचालित रूप से ठीक करने का कोई तरीका है या नहीं। आपको खुद को मुद्दों को ठीक करने की आवश्यकता होगी। यदि आपके पास संस्करण नियंत्रण है, तो इन परिवर्तनों को वापस लाएं और पुनर्विचार करने का प्रयास करें कि आपको पुराने लोगों को प्रभावित किए बिना माइग्रेशन को कैसे स्क्वैश करना चाहिए।

+1

हाँ, मैंने कुछ ऐसा ही पाया। जवाब के लिए धन्यवाद। मैंने अभी इसे स्क्वैश किए गए डेटा को हटाकर, माइग्रेशन फ़ाइलों को हटाकर स्क्वैश किए गए डेटा पर निर्भरताएं रखीं और "makemigrations" और "माइग्रेट" चलाएं। यह ऐसा कुछ है जो मुझे लगता है कि django परियोजना में तय किया जाना चाहिए। –

+0

हाय भाई @masnun, मुझे एक ही समस्या है। मेरा पहला प्रवास फ़ाइल में मैं [, ('custom_users', '__ latest__'), ('custom_devices', '0008_remove_customdevice_os_version') ], निर्भरता = है मैं पहली बार निर्भरता के लिए त्रुटि है। क्या मुझे इसे हटाना चाहिए? –

+0

डेटाबेस स्थिति की जांच करें और मैन्युअल रूप से चीजों को सेट अप करने के लिए SQL का उपयोग कर सकते हैं। – masnun

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