Django 2.1 - Upgrading Django to a newer version

Django को एक नए संस्करण में अपग्रेड करना




django

Django को एक नए संस्करण में अपग्रेड करना

यद्यपि यह कई बार एक जटिल प्रक्रिया हो सकती है, नवीनतम Django संस्करण में अपग्रेड करने के कई लाभ हैं:

  • नई सुविधाएँ और सुधार जोड़े गए हैं।
  • कीड़े तय हो गए हैं।
  • Django के पुराने संस्करण को अब सुरक्षा अद्यतन प्राप्त नहीं होंगे। ( समर्थित संस्करण देखें)।
  • प्रत्येक नए Django रिलीज़ के रूप में अपग्रेड करना आपके कोड बेस को अद्यतित रखकर भविष्य के उन्नयन को कम दर्दनाक बनाता है।

आपकी उन्नयन प्रक्रिया को यथासंभव सुगम बनाने में मदद करने के लिए विचार करने वाली कुछ बातें यहां दी गई हैं।

पढ़ना आवश्यक है

यदि यह आपका पहली बार अपग्रेड कर रहा है, तो विभिन्न रिलीज प्रक्रियाओं पर गाइड को पढ़ना उपयोगी है

बाद में, आपको अपने आप को उन परिवर्तनों से परिचित करना चाहिए जो नए Django संस्करण में किए गए थे:

  • अपने वर्तमान Django संस्करण के बाद एक से प्रत्येक 'अंतिम' रिलीज़ के लिए रिलीज़ नोट्स पढ़ें, और उस संस्करण को भी जिसमें आप अपग्रेड करने की योजना बना रहे हैं।
  • प्रासंगिक संस्करणों के लिए पदावनत समयरेखा देखें

एक सफल उन्नयन के लिए क्या आवश्यक होगा, इसका स्पष्ट विचार प्राप्त करने के लिए असंगत बदलावों पर ध्यान दें।

यदि आप एक से अधिक फ़ीचर संस्करण (जैसे AB से A.B + 2) के माध्यम से अपग्रेड कर रहे हैं, तो आमतौर पर प्रत्येक फीचर रिलीज़ के माध्यम से उन्नयन करना आसान होता है (AB से A.B + 1 से A.B + 2) के बजाय एक बार में प्रत्येक सुविधा रिलीज़ के लिए सभी परिवर्तन करें। प्रत्येक फ़ीचर रिलीज़ के लिए, नवीनतम पैच रिलीज़ (ABC) का उपयोग करें।

एक एलटीएस से अगले में अपग्रेड करते समय समान वृद्धिशील अप्रोच दृष्टिकोण की सिफारिश की जाती है।

निर्भरता

ज्यादातर मामलों में यह आपके Django- संबंधित निर्भरता के नवीनतम संस्करण में भी अपग्रेड करने के लिए आवश्यक होगा। यदि Django संस्करण हाल ही में जारी किया गया था या यदि आपकी कुछ निर्भरताएं अच्छी तरह से बनाए नहीं रखी गई हैं, तो आपकी कुछ निर्भरताएं अभी भी नए Django संस्करण का समर्थन नहीं कर सकती हैं। इन मामलों में आपको अपनी निर्भरता के नए संस्करण जारी होने तक इंतजार करना पड़ सकता है।

निराकरण की चेतावनी को हल करना

उन्नयन से पहले, Django के अपने वर्तमान संस्करण का उपयोग करते हुए अपनी परियोजना द्वारा उठाए गए किसी भी डिप्रेशन चेतावनियों को हल करना एक अच्छा विचार है। अपग्रेड करने से पहले इन चेतावनियों को ठीक करना यह सुनिश्चित करता है कि आपको कोड के उन क्षेत्रों के बारे में सूचित किया गया है जिन्हें बदलने की आवश्यकता है।

पायथन में, डिफ़ॉल्ट रूप से पदावनति चेतावनियाँ खामोश हो जाती हैं। -Wa Python कमांड लाइन विकल्प या PYTHONWARNINGS पर्यावरण चर का उपयोग करके आपको उन्हें चालू करना होगा। उदाहरण के लिए, परीक्षण चलाते समय चेतावनी दिखाने के लिए:

$ python -Wa manage.py test
...\> py -Wa manage.py test

यदि आप Django टेस्ट रनर का उपयोग नहीं कर रहे हैं, तो आपको यह भी सुनिश्चित करने की आवश्यकता हो सकती है कि कोई भी कंसोल आउटपुट कैप्चर नहीं किया गया है जो डिप्रेशन चेतावनी को छिपा देगा। उदाहरण के लिए, यदि आप py.test उपयोग py.test :

$ PYTHONWARNINGS=always py.test tests --capture=no

नवीनीकरण प्रक्रिया को जारी रखने से पहले Django के अपने वर्तमान संस्करण के साथ किसी भी पदावनति चेतावनी को हल करें।

तीसरे पक्ष के अनुप्रयोग Django के कई संस्करणों का समर्थन करने के लिए पदावनत एपीआई का उपयोग कर सकते हैं, इसलिए आपके द्वारा स्थापित पैकेजों में पदावनति चेतावनी एक समस्या का संकेत नहीं देती है। यदि कोई पैकेज Django के नवीनतम संस्करण का समर्थन नहीं करता है, तो समस्या को बढ़ाने या इसके लिए पुल अनुरोध भेजने पर विचार करें।

स्थापना

एक बार तैयार होने के बाद, यह नया Django संस्करण स्थापित करने का समय है। यदि आप virtualenv का उपयोग कर रहे हैं और यह एक प्रमुख अपग्रेड है, तो आप पहले सभी आश्रितों के साथ एक नया वातावरण स्थापित करना चाह सकते हैं।

यदि आपने pip साथ Django स्थापित किया है, तो आप --upgrade या -U ध्वज का उपयोग कर सकते हैं:

$ pip install -U Django
...\> pip install -U Django

परिक्षण

जब नया वातावरण सेट किया जाता है, तो अपने एप्लिकेशन के लिए पूर्ण परीक्षण सूट चलाएं । फिर से, यह डिप्रेशन चेतावनियों को चालू करने के लिए उपयोगी है, ताकि वे परीक्षण आउटपुट में दिखाए जाएं (यदि आप मैन्युअल रूप से अपने ऐप का manage.py runserver का उपयोग करके परीक्षण करते हैं तो आप भी ध्वज का उपयोग कर सकते हैं)

$ python -Wa manage.py test
...\> py -Wa manage.py test

आपके द्वारा परीक्षण चलाने के बाद, किसी भी विफलता को ठीक करें। जबकि आपके पास जारी किए गए नोट्स आपके दिमाग में नए हैं, तो किसी भी डिप्रेशन चेतावनियों को खत्म करने के लिए अपने कोड को रीक्रिएट करके Django में नई सुविधाओं का लाभ उठाने का एक अच्छा समय हो सकता है।

तैनाती

जब आप पर्याप्त रूप से आश्वस्त होते हैं कि आपका ऐप Django के नए संस्करण के साथ काम करता है, तो आप आगे बढ़ने और अपने उन्नत Django प्रोजेक्ट को deploy करने के लिए तैयार हैं।

यदि आप Django द्वारा प्रदान की गई कैशिंग का उपयोग कर रहे हैं, तो आपको उन्नयन के बाद अपने कैश को साफ़ करने पर विचार करना चाहिए। अन्यथा, आप समस्याओं में भाग सकते हैं, उदाहरण के लिए, यदि आप मसालेदार वस्तुओं को कैशिंग कर रहे हैं, क्योंकि इन वस्तुओं को Django संस्करणों में अचार-संगत होने की गारंटी नहीं है। असंगतता का एक अतीत उदाहरण cache_page() HttpResponse ऑब्जेक्ट कैशिंग कर रहा था, या तो प्रत्यक्ष या अप्रत्यक्ष रूप से cache_page() डेकोरेटर के माध्यम से।