मैगेंटो अपग्रेड का अनुमान लगाने की एक प्रक्रिया है जो आपके द्वारा इंस्टॉलेशन के लिए लागू किए गए संशोधनों के बारे में जानकारी एकत्र करने की एक प्रक्रिया है, यह जाँचने के लिए कि क्या उन संशोधनों के कारण समस्या हो सकती है और फिर मूल्यांकन कर सकते हैं कि उनके आसपास काम करने के लिए कितना समय आवश्यक है।
सभी संशोधनों को सचमुच ऑफ-कोर और इन-कोर में विभाजित किया जा सकता है ।
ऑफ-कोर संशोधन वे हैं जिन्हें अपग्रेड के साथ अधिलेखित नहीं किया जाएगा। वे 3-पार्टी एक्सटेंशन हैं , कोर फाइलें स्थानीय दायरे (ऐप / कोड / स्थानीय / मैज) और एक कस्टम थीम में डाल दी जाती हैं ।
इन-कोर संशोधनों को सीधे सीधे Magento की मुख्य फाइलों (ऐप / कोड / कोर), स्थानीयकरण फ़ाइलों (ऐप / लोकेल / en_US), कोर टेम्प्लेट और कुछ चीज़ों जैसे जावास्क्रिप्ट , बाहरी पुस्तकालयों पर लागू किया जाता है , जिन्हें शायद ही कभी अनुकूलित किया जाता है, फिर भी इस पर ध्यान दिया जाना चाहिए। ।
ऑफ-कोर संशोधन
3 पार्टी एक्सटेंशन
उन्नयन के दौरान तृतीय पक्ष एक्सटेंशन मुद्दों का मुख्य स्रोत हैं। जिसका अर्थ है कि आपके पास अधिक समय होने पर आपको और अधिक विश्लेषण करने की आवश्यकता होगी।
जांच करने के लिए पहली बात यह है कि एक्सटेंशन द्वारा प्रदान की गई कार्यक्षमता अभी तक आपके द्वारा नवीनीकरण किए जा रहे Magento के संस्करण में लागू नहीं की गई है। उदाहरण के लिए कुछ एक्सटेंशन जैसे कि या Magento 1.3.xx और पुराने में व्यापक रूप से उपयोग किए गए थे Yoast_CanonicalUrl
, लेकिन अब कोर Magento कार्यक्षमता का हिस्सा हैं और अब आवश्यक नहीं हैं।Mxperts_CustomerAddress
Fontis_Wysiwyg
तब यह जांचना एक अच्छा विचार है (अपने ग्राहक से पूछें) यदि आपको वास्तव में उन सभी एक्सटेंशनों की आवश्यकता है जो आपके पास हैं। आपके द्वारा स्थापित कुछ एक्सटेंशन हो सकते हैं लेकिन वास्तव में कभी भी उपयोग नहीं किए जाते हैं। तो इस बिंदु पर एक प्रकार का सफाई करना अच्छा है।
फिर जांच करने के लिए एक महत्वपूर्ण बात यह है कि आपके द्वारा अपग्रेड किए जा रहे Magento के संस्करण के साथ शेष एक्सटेंशन में से प्रत्येक की संगतता है। यदि कुछ एक्सटेंशन संगत नहीं हैं और कोई समान एक्सटेंशन उपलब्ध नहीं हैं, तो आपके पास कुछ कार्यक्षमता खोने या मौजूदा एक्सटेंशन को संशोधित करने के लिए उन्हें संगत बनाने का एक कठिन विकल्प होगा।
नोट: सीधे तृतीय पक्ष एक्सटेंशन को संशोधित न करें, लेकिन एक नया एक्सटेंशन बनाएं जो एक पुराने को विस्तारित करेगा और फिर नए एक्सटेंशन के बूटस्ट्रैप XML में एक निर्भरता निर्धारित करेगा।
उन सभी के बाद शेष एक्सटेंशन के प्रत्येक का वास्तविक विश्लेषण प्रदान किया जा सकता है। यह हमेशा etc/config.xml
फ़ाइल की परीक्षा से शुरू होगा । देखने के लिए 3 चीजें हैं:
- क्लास रीराइट्स अपने आप में एक स्वच्छ तकनीक नहीं है, लेकिन कुछ मामलों में कोई अन्य तरीका नहीं है। इसलिए यदि मैगेंटो के नए संस्करण में फिर से लिखा गया वर्ग बदल दिया गया तो यह एक संभावित मुद्दा हो सकता है।
- लेआउट अपडेट से आपके अपग्रेड में समस्या होने की संभावना कम होगी लेकिन फिर भी अगर एक्सटेंशन एक ब्लॉक को संदर्भित कर रहा है जो कि एक नए मैगेंटो संस्करण में अपग्रेड किया गया है तो आपको इसके चारों ओर काम करना होगा।
- नवीनीकरण के दौरान SQL अपडेट समस्याओं का बहुत कम स्रोत हैं। समस्या तब होती है जब 3rd पार्टी एक्सटेंशन डिफ़ॉल्ट Magento तालिका में कुछ फ़ील्ड के लिए एक विदेशी कुंजी संदर्भित बना रहा है। परिणामस्वरूप यह क्षेत्र संशोधनों से बंद है। और फिर अगर मूल स्थापित स्क्रिप्ट इस क्षेत्र को अपडेट करने की कोशिश करेगी तो यह चुपचाप विफल हो जाएगी। उसके बाद इस क्षेत्र में आने वाली हर अगली स्क्रिप्ट स्क्रिप्ट आपके अपग्रेड को क्रैश कर देगी।
एप्लिकेशन / कोड / स्थानीय / दाना
अपने एक्सटेंशन के साथ समाप्त होने के बाद आपकी app/code/local/Mage
निर्देशिका पर एक नज़र डालने का समय है । यहां आपको संशोधित कोर फाइलें एक local
दायरे में स्थानांतरित हो जाएंगी । उनमें से प्रत्येक निश्चित रूप से आपको कुछ भूरे बालों की कीमत देगा क्योंकि आप कभी नहीं जानते हैं (यदि यह आप नहीं थे जो उन्हें वहां डालते हैं) क्या वहां संशोधित किया गया था और किस कारण से। इसलिए आपको उनमें से प्रत्येक की तुलना एक मूल और माइग्रेट की गई कार्यक्षमता के साथ नए संस्करण की संवाददाता फ़ाइल से करनी होगी।
कस्टम थीम
अंतिम गुच्छा ऑफ-कोर संशोधन कस्टम विषय है। यह एक बड़ी बात नहीं लग सकती है लेकिन वास्तव में यह एक ग्रे क्षेत्र है। Magento बेस थीम को संस्करण से संस्करण में बदला जा रहा है और प्रत्येक कस्टम थीम को उन संशोधनों में से कुछ की नकल करनी है। दुर्भाग्य से यह निर्धारित करने के लिए कोई चांदी की गोली नहीं है कि क्या देखना है और क्या माइग्रेट करना है। तो बस अपने उन्नयन के बाद कुछ प्रमुख आश्चर्य और मामूली नाइटपैकिंग के लिए तैयार रहें।
इन-कोर संशोधन
सही दुनिया में कोई नहीं हैं। लेकिन जब आपको तृतीय-पक्ष डेवलपर्स द्वारा दुर्व्यवहार के बाद मैगेंटो इंस्टॉलेशन मिला, जो सस्ते के लिए बहुत कुछ दे रहे हैं, तो आप कुछ भी उम्मीद कर सकते हैं। इसलिए इन-कोर संशोधन वे हैं जो अपग्रेड प्रक्रिया के दौरान अधिलेखित हो जाएंगे । ज्यादातर मामलों में यह किसी भी त्रुटि का उत्पादन नहीं करेगा, लेकिन परिणामस्वरूप आप कार्यक्षमता को खो देंगे जो इस तरह के क्रूर तरीके से जोड़ा गया था।
इन-कोर संशोधनों का पता लगाने का एकमात्र तरीका यह है कि आप अपने Magento इंस्टॉलेशन की सभी फाइलों की तुलना एक ही संस्करण की साफ-सुथरी फाइलों से करें। मैं इसे जीआईटी के साथ करने की सलाह देता हूं। क्यों? केवल इसलिए कि यह सभी नए सिरे और व्हाट्सएप को अच्छी तरह से संभाल लेगा।
यहां तक कि अगर आपकी Magento की स्थापना git के अंतर्गत नहीं है, तब भी आप अपनी फ़ाइलों को एक अलग निर्देशिका में कॉपी कर सकते हैं और फिर git init चला सकते हैं। फिर प्रारंभिक कमिट करें, "क्लीन" मैगेंटो फ़ाइलों को कॉपी करें और चलाएं git status
। आपको कुछ इस तरह मिलेगा:
अब संशोधित फ़ाइलों की संख्या के आधार पर आप git diff
प्रत्येक फ़ाइल पर या पूरे बैच पर एक साथ चल सकते हैं। यह आपको किए गए सभी इन-कोर संशोधनों का व्यापक संदर्भ देगा। यदि आपके पास कोई दृश्य दृश्य है जैसे phpStorm तो जीवन आपके लिए बहुत आसान है:
मेरा सुझाव है कि git diff > changes.txt
ऐसा करने के लिए आपके पास हमेशा संशोधनों की एक सूची होगी।
मुख्य संशोधनों की सूची होने से आप अनुमान लगा सकते हैं कि नए संस्करण में क्या स्थानांतरित किया जाना है और ऐसा करने के लिए कितना समय देना होगा।
अब मैं वास्तविक उन्नयन के लिए कुछ सलाह देना चाहूंगा। इस प्रक्रिया को अच्छी तरह से प्रलेखित किया गया है, इसलिए मैं यह नहीं लिखूंगा कि कौन सी कमांड को चलाना है और कहां क्लिक करना है। हालांकि मैं कई महत्वपूर्ण चीजों पर एक उच्चारण करना चाहता हूं:
- हम मान रहे हैं कि आप अपने विकास के माहौल में उन्नयन कर रहे हैं। अपने उत्पादन सर्वर पर अपग्रेड रनिंग एक आत्महत्या है।
- जब आप उन्नयन कर रहे हों तो उन्हें उत्पादन में कुछ भी बदलने न दें। अपने Magento को संस्करण नियंत्रण या लेखन से अस्थायी लॉक फ़ाइलों के अंतर्गत रखें।
- सभी तृतीय पक्ष एक्सटेंशन अक्षम करें, लेकिन ध्यान दें कि जो प्रारंभ में अक्षम थे, इसलिए आप उन्हें बाद में सक्षम नहीं करेंगे।
- जाँच करें कि क्या सर्वर पर कोई Magento सफाई स्क्रिप्ट चल रही है। अन्यथा के साथ शुरू सभी तालिकाओं काटना
dataflow_*
, log_*
, report_*
।
- अपग्रेड समय पर डिफ़ॉल्ट थीम पर वापस लौटें।
अपग्रेड स्क्रिप्ट पूरी होने के बाद:
- संदर्भित
changes.txt
आप से पहले सभी में कोर संशोधनों जो वास्तव में योग्य माइग्रेट कर रहे विस्थापित कर दिया।
app/code/local/Mage
नवीनीकरण से पहले मिले संशोधनों को माइग्रेट करें ।
- एक-एक करके तीसरे पक्ष के एक्सटेंशन को सक्षम करें।
- अपनी थीम वापस रखें और बड़े पैमाने पर उत्पादन सर्वर के साथ परिणाम की तुलना करें।
- एक बार जब आप परिणाम से खुश होते हैं, तो उत्पादन को तैनात करें।
निष्कर्ष
मुझे पता है कि यह सब डरावना लगता है, लेकिन अगर आप नियमित रूप से अपग्रेड कर रहे हैं, तो अपने कोर को साफ रखें और केवल विक्रेताओं से ही एक्सटेंशन लें, जिन पर आपको वास्तव में भरोसा है और केवल अगर आपको उनकी जरूरत है तो आपको इस लेख में वर्णित अधिकांश कठिनाइयों का सामना नहीं करना पड़ेगा। अपने Magento के EcoSystem को स्वस्थ रखें और आपको पुरस्कृत किया जाएगा।
स्क्रिप्टम के बाद
बहुत ही जटिल मामलों में यह नवीनतम मैगनेटो की एक नई स्थापना के साथ शुरू करने के लिए समझ में आता है और आपकी स्टोर थीम और कार्यक्षमता चरण-दर-चरण माइग्रेट करता है। यह निश्चित रूप से समय लेगा, लेकिन अंत में आपके पास एक स्वस्थ मैगेंटो प्रणाली होगी जिसमें आपकी पूरी जागरूकता होगी कि क्या हो रहा है।