Django दक्षिण के साथ पीछे की ओर माइग्रेशन




migration django-south (2)

आप जिस रोल को वापस रोल करना चाहते हैं उसके ठीक पहले आपको माइग्रेशन की संख्या को समझने की आवश्यकता है।

आपके ऐप में माइग्रेशन निर्देशिका होनी चाहिए, जिसमें फाइलें हैं

0000_initial.py
0001_added_some_fields.py
0002_added_some_more_fields.py
0003_deleted_some_stuff.py

आम तौर पर, जब आप चलाते हैं ./manage.py migrate your_app , तो दक्षिण में सभी नए माइग्रेशन चलाते हैं। (यह तय करने के लिए डेटाबेस टेबल को देखता है कि कौन से 'नए' हैं)।

हालांकि, आप संख्या से किसी भी माइग्रेशन को भी निर्दिष्ट कर सकते हैं, और दक्षिण उस बिंदु पर ले जाने के लिए या तो आगे या पीछे , आपके डेटाबेस को माइग्रेट करेगा। तो, उपर्युक्त उदाहरण फाइलों के साथ, यदि आप पहले ही 0003 तक माइग्रेट हो चुके हैं, और आप 0003 को रिवर्स (इसे प्रभावी रूप से पूर्ववत करना) चलाने के लिए चाहते हैं, तो आप दौड़ेंगे

./manage.py migrate your_app 0002

दक्षिण डेटाबेस को देखेगा, एहसास होगा कि यह पहले से ही 0003 चला चुका है, और यह निर्धारित करता है कि इसे 0003 पर वापस जाने के लिए 0003 के लिए रिवर्स माइग्रेशन चलाया जाना है।

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

Django पर दक्षिण का उपयोग करके आप पीछे की ओर माइग्रेशन कैसे करते हैं?

तो मैंने अपने मॉडलों को tweaked किया है, schemamigration साथ एक माइग्रेशन बनाया है, migrate साथ माइग्रेशन चलाते migrate , और अब मुझे एहसास है कि मैं काफी नहीं चाहता था और मैं इसे पहले से वापस चाहता हूँ।

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

क्या कोई मदद कर सकता है?


पैरामीटर के अंत में माइग्रेशन नाम जोड़ें:

./manage.py migrate app-name 00xx-migration-name




django-south