Drupal 8 में अपग्रेड के लिए साइट की तैयारी
Drupal 6 या Drupal 7 साइट को Drupal 8 में अपग्रेड करने से पहले, यह अनुशंसा की जाती है कि आप कुछ कदम उठाएँ ताकि यह सुनिश्चित हो सके कि प्रक्रिया सुचारू होगी और वांछित परिणाम देगी।
Drupal कोर के पिछले प्रमुख अपग्रेड्स के विपरीत, Drupal 8 अपग्रेड प्रक्रिया मूल साइट को इन-प्लेस अपडेट नहीं करती। इसके बजाय, कॉन्फ़िगरेशन और कंटेंट एंटिटीज़ को स्रोत साइट से एक साफ Drupal 8 साइट पर माइग्रेट किया जाता है। प्रक्रिया और मुख्य अंतरों के अवलोकन के लिए देखें Drupal 6 या 7 से Drupal 8 में अपग्रेड।
हालांकि अपग्रेड स्रोत साइट को नहीं बदलता, फिर भी यह अनुशंसा की जाती है कि इसे लाइव साइट पर न चलाएँ। इसके बजाय, लाइव साइट का बैकअप इस्तेमाल करें ताकि डेटाबेस की संगत स्थिति सुनिश्चित की जा सके (माइग्रेशन के दौरान डेटाबेस में कोई लेखन न हो) और लाइव साइट के प्रदर्शन पर कोई प्रभाव न पड़े।
स्रोत साइट का इन्वेंटरी मॉड्यूल
Drupal 6 या Drupal 7 की आपकी मौजूदा साइट कैसे बनी है, यह समझना महत्वपूर्ण है, इससे पहले कि आप Drupal 8 में अपग्रेड शुरू करें।
स्रोत Drupal 6/7 साइट पर सक्षम कोर और contributed मॉड्यूल्स की पहचान करें। आप इसे मॉड्यूल प्रशासन पेज ("Administration" > "Site building" > "Modules") पर सूचीबद्ध मॉड्यूल देखकर या admin/reports/updates पर "Available updates" पेज का उपयोग करके कर सकते हैं।
स्रोत साइट पर सक्षम मॉड्यूल्स की पूरी सूची लिख लें और इसे अपग्रेड की योजना बनाने के लिए चेकलिस्ट के रूप में उपयोग करें। प्रत्येक मॉड्यूल के लिए निम्नलिखित प्रश्नों का उत्तर दें:
- क्या मुझे इस मॉड्यूल की Drupal 8 पर अभी भी आवश्यकता है?
- क्या यह मॉड्यूल Drupal 8 कोर में चला गया है? उदाहरण के लिए, Views अब Drupal 8 कोर का हिस्सा है।
- क्या इस मॉड्यूल का Drupal 8 संस्करण उपलब्ध है? यदि नहीं, तो क्या मुझे अभी भी इसकी आवश्यकता है? क्या वही कार्यक्षमता प्रदान करने वाला कोई अन्य मॉड्यूल उपलब्ध है?
- ध्यान दें कि Drupal 6/7 मॉड्यूल्स हमेशा सीधे Drupal 8 मॉड्यूल्स से मेल नहीं खाते। उदाहरण के लिए, Drupal 6 और 7 में Block मॉड्यूल को Drupal 8 में Block और Custom Block मॉड्यूल्स में विभाजित किया गया।
Drupal 8 अपग्रेड UI यह दिखाता है कि कौन से मॉड्यूल स्वतः अपग्रेड किए जा सकते हैं और कौन से नहीं। अधिक जानकारी के लिए देखें वेब-ब्राउज़र का उपयोग करके अपग्रेड। आप Upgrade Status मॉड्यूल भी आज़मा सकते हैं, जो बाहरी सेवा का उपयोग करता है ताकि अपग्रेड समय का अनुमान प्रदान किया जा सके।
ज्ञात समस्याओं का पेज जांचें
Drupal 6/7 से Drupal 8 अपग्रेड पथ अभी भी प्रायोगिक है, और कुछ कोर मॉड्यूल्स का पूर्ण अपग्रेड पथ नहीं हो सकता। अपग्रेड की तैयारी करते समय यह अनुशंसा की जाती है कि आप ज्ञात समस्याओं का पेज पढ़ें।
अपनी Drupal 6/7 साइट को कोर और contributed मॉड्यूल्स के नवीनतम संस्करणों में अपडेट करें
अपग्रेड प्रक्रिया मानती है कि आपने पहले अपनी पुरानी साइट को नवीनतम minor रिलीज़ में अपडेट किया है। उदाहरण के लिए, यदि आपकी साइट Drupal 6.35 चला रही है, तो आपको पहले इसे 6.38 में अपडेट करना होगा।
यदि आप contributed मॉड्यूल्स से कॉन्फ़िगरेशन या कंटेंट स्वतः माइग्रेट करने की योजना बनाते हैं, तो आपको उन मॉड्यूल्स के नवीनतम संस्करणों का उपयोग करना चाहिए।
Drupal 6/7 साइट पर admin/reports/updates पर "Available updates" पेज का उपयोग करें यह जांचने के लिए कि अपडेट उपलब्ध हैं या नहीं।
Drupal 6/7 से Drupal 8 में अपग्रेड करने के लिए पूर्व-आवश्यकताएँ
- एक नई Drupal 8 इंस्टॉलेशन जिसमें कोर "Migrate" और "Migrate Drupal" मॉड्यूल सक्षम हों। यदि आप ब्राउज़र यूज़र इंटरफ़ेस का उपयोग करके Drupal 8 में अपग्रेड कर रहे हैं, तो आपको कोर "Migrate Drupal UI" मॉड्यूल भी सक्षम करना होगा।
- Drupal 6 और Drupal 7 i18n मॉड्यूल से सभी ट्रांसलेशन माइग्रेशन के लिए, Drupal 8 साइट पर multilingual Migrate Drupal मॉड्यूल (migrate_drupal_multilingual) स्थापित होना चाहिए।
- नई Drupal 8 साइट जिस होस्ट पर है, वहाँ से Drupal 6 या 7 डेटाबेस तक पहुँच।
- स्रोत साइट फाइल्स तक पहुँच।
- यदि केवल सार्वजनिक फाइलें उपयोग की जाती हैं, तो वे साइट URL के माध्यम से उपलब्ध होंगी।
- यदि निजी फाइलें माइग्रेट करनी हों, तो फाइल डायरेक्टरी नई Drupal 8 साइट द्वारा सीधे उपलब्ध होनी चाहिए, और आपको अपग्रेड शुरू करने से पहले settings.php में Drupal 8 का file_private_path सेट करना होगा।
- यदि आप Drush का उपयोग करके Drupal 8 में अपग्रेड कर रहे हैं, तो आपको Drush 8 या Drush 9 और तीन अतिरिक्त मॉड्यूल्स की आवश्यकता होगी।
- Drush के लिए इंस्टॉलेशन निर्देश ऊपर दिए गए पेज पर उपलब्ध हैं।
- Migrate Tools स्थापित करें
- Migrate Upgrade स्थापित करें
- Migrate Plus स्थापित करें
- ऊपर सूचीबद्ध मॉड्यूल्स के बारे में अधिक जानकारी के लिए देखें अपग्रेड मॉड्यूल्स की सूची।
- महत्वपूर्ण: Drupal 8 कोर संस्करण और इन मॉड्यूल्स के संस्करणों की संगतता पर विशेष ध्यान दें। मॉड्यूल्स के पेज स्पष्ट रूप से बताते हैं कि कौन सा संस्करण उपयोग करना है।
Drupal 8 में आवश्यक कोर और contributed मॉड्यूल्स सक्षम करें
माइग्रेशन प्रक्रिया लक्ष्य Drupal 8 साइट पर स्वतः मॉड्यूल इंस्टॉल नहीं करती। केवल वही माइग्रेशन्स चलेंगी जो स्रोत और लक्ष्य दोनों साइट्स पर सक्षम मॉड्यूल्स से संबंधित हों। इसलिए, Drupal 8 साइट पर सभी कोर और contributed मॉड्यूल्स को पहले सक्षम करना आवश्यक है जिनसे आप स्रोत साइट से कॉन्फ़िगरेशन और कंटेंट माइग्रेट करना चाहते हैं।
कुछ उदाहरण:
- यदि आपके स्रोत Drupal 7 साइट पर Addressfield मॉड्यूल सक्षम है और आप address डेटा माइग्रेट करना चाहते हैं, तो आपको अपने Drupal 8 साइट पर Address मॉड्यूल सक्षम करना होगा, इससे पहले कि आप अपग्रेड प्रक्रिया शुरू करें। यह एक अच्छा उदाहरण है जहाँ Drupal 7 और Drupal 8 मॉड्यूल्स 1:1 मेल नहीं खाते। हालांकि, Drupal 8 Address मॉड्यूल Drupal 7 Addressfield से डेटा माइग्रेट करने के लिए आवश्यक प्लगइन्स प्रदान करता है।
- यदि स्रोत साइट पर Drupal 7 कोर Forum मॉड्यूल सक्षम है, तो आपको अपने Drupal 8 साइट पर भी कोर Forum मॉड्यूल सक्षम करना होगा, इससे पहले कि आप अपग्रेड प्रक्रिया शुरू करें।
Drupal 8 साइट को कॉन्फ़िगर न करें
ध्यान रखें कि अपग्रेड प्रक्रिया Drupal 8 साइट की कॉन्फ़िगरेशन को ओवरराइट कर देगी, इसलिए अपग्रेड प्रक्रिया पूरी होने तक Drupal 8 साइट पर कोई मैन्युअल कॉन्फ़िगरेशन न करें। इसका अर्थ है कि आपको सभी कंटेंट टाइप्स और फ़ील्ड्स को मैन्युअली बनाने की आवश्यकता नहीं है। Migrate मॉड्यूल इन्हें माइग्रेशन प्रक्रिया का हिस्सा बनाकर बना देगा। वास्तव में, सबसे आम प्रैक्टिस Drupal 8 को Minimal इंस्टॉलेशन प्रोफ़ाइल से इंस्टॉल करना है, क्योंकि Standard प्रोफ़ाइल में अपनी कॉन्फ़िगरेशन होती है जिसे आप शायद इस्तेमाल नहीं करना चाहेंगे। यह Drupal 7 और इससे पहले के Migrate के काम करने के तरीके से अलग है, जहाँ आपको पहले से कंटेंट टाइप्स और फ़ील्ड्स तैयार करने होते थे।
Drupal 8 साइट पर कंटेंट न बनाएँ
अपग्रेड प्रक्रिया स्रोत साइट से यूनिक IDs को बरकरार रखती है। उदाहरण के लिए, यदि स्रोत साइट पर किसी यूज़र अकाउंट का यूनिक ID 2 है (URI/user/2), तो अपग्रेड के बाद वही अकाउंट Drupal 8 साइट पर /user/2 पर होगा। यदि आप Drupal 8 साइट पर डिफ़ॉल्ट एडमिन अकाउंट के अलावा नया यूज़र अकाउंट बनाते हैं, तो उसे भी यूज़र ID 2 दिया जाएगा – फिर अपग्रेड प्रक्रिया स्रोत साइट के यूज़र ID 2 वाले अकाउंट से उसे ओवरराइट कर देगी। यह उपयोगकर्ता खातों, टैक्सोनॉमी टर्म्स, नोड कंटेंट और अन्य सभी प्रकार की कंटेंट एंटिटीज़ पर लागू होता है जिनके पास संख्यात्मक IDs हैं।
डेटा हानि से बचने के लिए, जब तक पूरा स्रोत कंटेंट पूरी तरह से इम्पोर्ट न हो जाए, Drupal 8 साइट पर कुछ भी मैन्युअली न बनाएँ।
अपग्रेड निष्पादित करना
माइग्रेशन चलाने के दो विकल्प हैं:
- ब्राउज़र यूज़र इंटरफ़ेस का उपयोग करना। यह एक सरल तरीका है और इसे Drupal 8 साइट के यूआई के माध्यम से किया जा सकता है। हालाँकि, यह माइग्रेशन पर कम नियंत्रण प्रदान करता है।
- Drush का उपयोग करना। यह अधिक विश्वसनीय और तेज़ है, और चयनात्मक माइग्रेशन की अनुमति देता है, लेकिन इसमें अतिरिक्त मॉड्यूल्स की आवश्यकता होती है और इसे कमांड लाइन से चलाना पड़ता है।