परीक्षण वातावरण से उत्पादन पर्यावरण तक कैसे स्थानांतरित करें?


46

प्रवासन स्थानीय वातावरण से उत्पादन पर्यावरण तक है। उत्पादन वातावरण ने कुछ समय चलाया और बहुत सारे लेख बनाए।

अपनी साइट पर नई चीज़ें जोड़ने के लिए, मैंने एक कस्टम थीम जोड़ी और अपने स्थानीय परीक्षण वातावरण में CCK, Views और अन्य मॉड्यूल स्थापित किए। अब जब स्थानीय परीक्षण वातावरण समाप्त हो गया है, तो मैं इसके डेटाबेस की सामग्री को नष्ट किए बिना, इसे उत्पादन वातावरण में कैसे स्थानांतरित करूं?

जवाबों:


34

यह एक गैर-तुच्छ समस्या है, जिसके लिए लगभग सभी का अलग-अलग उत्तर है: उत्पादन को बढ़ाने के लिए मंचन को संभालने के लिए एक विहित Drupal तरीका नहीं है। ड्रिप्स क्रेतार्ट, वह व्यक्ति जो ड्रुपल शो चलाता है, उसने इसे ड्रुपल 8 की महत्वपूर्ण पहलों में से एक बना दिया । बेशक, ड्रुपल 7 को अभी जारी किया गया था, इसलिए यह किसी भी फल को सहन करने से पहले थोड़ी देर होगी।

समस्या को दो अलग-अलग मुद्दों में विभाजित किया जा सकता है:

  • स्टेजिंग कॉन्फ़िगरेशन (चर, सामग्री प्रकार, फ़ील्ड, दृश्य, आदि)
  • मंचन सामग्री (नोड्स, उपयोगकर्ता, आदि)

पूर्व को ज्यादातर फ़ीचर मॉड्यूल द्वारा नियंत्रित किया जा सकता है , जो आपकी साइट कॉन्फ़िगरेशन को ले जाएगा और इसे एक मॉड्यूल में बदल देगा जिसे आप अपने Drupal स्थापना में जोड़ सकते हैं: इस तरह, आप इसे अपने संस्करण नियंत्रण प्रणाली में जोड़ सकते हैं और इसके बारे में चिंता करने की आवश्यकता नहीं है। उड़ाया जा रहा है जब आप अपनी सामग्री को स्थानांतरित करते हैं।

उत्तरार्द्ध वास्तव में मुश्किल है, क्योंकि एक सक्रिय साइट पर, यह संभावना है कि सामग्री आपके उत्पादन परिवेश में प्रारंभिक सिंक करने के बाद भी उत्पादन पर बदल जाएगी। यह मचान के दौरान सामग्री के थोक प्रतिस्थापन को रोकता है जैसे आप कॉन्फ़िगरेशन के साथ कर सकते हैं।

इसके अतिरिक्त, Drupal सामग्री के लिए सार्वभौमिक रूप से विशिष्ट पहचानकर्ताओं (UUIDs) का उपयोग नहीं करता है: हर बार नोड या उपयोगकर्ता को जोड़ने पर, ID एक से बढ़ जाती है। तो आपके विकास स्थल पर नोड 45 क्या हो सकता है आपके उत्पादन स्थल पर नोड 90 हो सकता है।

दुर्भाग्य से, मेरे पास इसके लिए एक महान समाधान नहीं है: मंचन सामग्री ड्रुपल की वास्तविक कमजोरी है। मैं व्यक्तिगत रूप से केवल उत्पादन साइट पर सामग्री जोड़ता हूं। यदि कोई ग्राहक यह देखना चाहता है कि लाइव होने से पहले सामग्री कैसी दिखती है, तो मैं उत्पादन साइट का एक क्लोन तैयार करूंगा जो केवल ग्राहक के लिए सुलभ हो। फिर, एक बार स्वीकृत होने के बाद, उत्पादन में सीधे वही बदलाव किए जाते हैं।

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


आप uuid और uuid_features का उपयोग करके सामग्री को स्थानांतरित कर सकते हैं, लेकिन यह अभी तक विश्वसनीय नहीं है।
जेरेमी फ्रेंच

7

हमारी प्रक्रिया में।

  1. हमारे पास एक शेल स्क्रिप्ट है जो db को ठेस से खींचती है।
  2. हम हडसन का उपयोग अपनी देव / मचान शाखाओं के पुनर्निर्माण के लिए करते हैं ताकि जीवित और देव शाखाओं को सिंक किया जा सके।

    चूंकि हम Git का उपयोग कर रहे हैं, प्रत्येक कार्य जो हम कर रहे हैं उसकी अपनी शाखा है, तो जब QA में उत्तीर्ण होता है तो हम इसे प्रतिगमन परीक्षण के लिए हमारे मंचन सर्वर के रूप में मास्टर करने के लिए मर्ज करते हैं।

    जब मास्टर तैयार हो जाता है तो हम एक परीक्षण जारी करते हैं Release Serverजो हमारे लिए लाइव (कॉन्फ़िगरेशन, हार्डवेयर, आदि) की प्रतिकृति है।

  3. हम Featureकॉन्फ़िगरेशन को लागू करने के लिए मॉड्यूल का उपयोग करते हैं । कुछ सामान अभी तक सुविधा द्वारा समर्थित नहीं हैं, इसलिए हम hook_update_N का उपयोग करते हैं और फिर updateb.php चलाएं याdrush -vd updb

  4. रिलीज के प्रदर्शन के बाद drush fra --yesसभी ओवरराइड फीचर को वापस करने के लिए फीचर्स रिवर्ट ( )।
  5. चूंकि हम बूस्ट (वार्निश की ओर बढ़ रहे हैं) और मेमेचे का उपयोग कर रहे हैं, हमें कैश ( drush cc all) को खाली करने की आवश्यकता है ।

    हम अपनी छवियों / वीडियो आदि को सिंक करने के लिए rsync का उपयोग कर रहे हैं ...


क्या आप कृपया चरण 2 को विस्तृत कर सकते हैं - Git के उपयोग से मैं यह समझ सकता हूं कि हम किसी भी फाइल सिस्टम परिवर्तन को आसानी से मर्ज कर सकते हैं, लेकिन आप डेटाबेस की अखंडता को कैसे सुनिश्चित करते हैं? इसके अलावा, "सुविधाओं" (कॉन्फ़िगरेशन को तैनात करने के लिए) का उपयोग करने का वास्तव में क्या उद्देश्य है? धन्यवाद!
राज पवन गुमडाल '

2

XAMPP सर्वर से दूसरे सर्वर पर माइग्रेट करने के लिए, मैंने इस साइट पर निर्देशों का पालन किया ।

सुनिश्चित करें कि आप अपने उत्पादन सर्वर पर उसी संरचना को रखते हैं जैसा आपने अपने विकास सर्वर पर किया था। मुझे Drupal admin डैशबोर्ड में स्थित कुछ फाइलों को भी एडिट करना था: admin / config / media / file-system

सुनिश्चित करें कि आपके सार्वजनिक फ़ाइल सिस्टम पथ और अस्थायी निर्देशिका में सही स्थान सेट हैं।


यह कभी भी "विलय" समस्या के बारे में बात नहीं करता है। प्रश्न में स्पष्ट रूप से कहा गया है कि उत्पादन में सामग्री डेटा होता है जिसे बरकरार रखना पड़ता है जबकि स्टेजिंग सर्वर से वृद्धि को उत्पादन में विलय करना पड़ता है।
राज पवन गुमडाल '
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.