कुछ मॉड्यूल में अपक्षय दिनचर्या है। जो आमतौर पर उस मॉड्यूल के लिए डेटाबेसटेबल्स को हटाते हैं, चर तालिका से चर और उस मॉड्यूल द्वारा शुरू किए गए स्थानों को। ये रूटीन .install
उस मॉड्यूल के रहते हैं।
इसलिए, उन्हें उस मॉड्यूल के बिना नहीं चलाया जा सकता है। तो यहाँ हमारे वर्तमान कदम हैं। मेरा सवाल है: क्या यह सरल और अधिक प्रभावी ढंग से किया जा सकता है? कहो मैं foo_bar मॉड्यूल निकालता हूं।
- RCS में, एक नया रिलीज़ तैयार करें, जहाँ:
- सभी css और थीम-ओवरराइड जो शीर्ष पर foo_bar का उपयोग या निर्माण करते हैं, हटा दिए जाते हैं।
- Foo_bar के आधार पर मॉड्यूल के लिए सभी सीएसएस और थीम-ओवरराइड हटा दिए जाते हैं।
- स्वीकार करने के लिए जारी करें धक्का। उत्पादन डेटाबेस की हाल ही की प्रतिलिपि के साथ de modulesnstallation (व्यवस्थापक / मॉड्यूल से) का परीक्षण करें।
- यदि सब कुछ ठीक हो जाता है, तो उत्पादन के लिए नए कोडबेस को तैनात करें, और destnstall foo_bar और इसकी निर्भरताएं। यह विभिन्न मॉड्यूल में स्थापना रद्द करेगा, डेटाबेस की सफाई करेगा।
- आरसीएस (गिट) में, एक नया रिलीज तैयार करें जहां कोड वास्तव में हटा दिया गया है।
- यह स्वीकार करने के लिए कि जहां हम परीक्षण करते हैं, अगर गलती से इस पर निर्भर नहीं होता है (कुछ बदसूरत मॉड्यूल या थीम फ़ंक्शन में अन्य मॉड्यूल से फ़ाइलें सीधे शामिल हैं। सबसे विशेष रूप से CSS, JS या छवि-फ़ाइलें)।
- यदि स्वीकार किया जाता है, तो उत्पादन के लिए नई रिलीज को तैनात करें। उत्पादन में अब एक स्वच्छ डेटाबेस और एक स्वच्छ कोडबेस है ।
समस्या है कि मैं कैसे हल करने के लिए नहीं देख सकता है, यह है कि यह हमेशा दो रिलीज की जरूरत है। चूंकि द्रुपाल में एक रिलीज के लिए साइट को ऑफ़लाइन होने की आवश्यकता होती है, इसका मतलब सिर्फ एक मॉड्यूल को हटाने के लिए दो बार डाउनटाइम होता है। इसके लिए दो रिलीज प्रक्रियाओं की भी आवश्यकता होती है, जो पेशेवर होस्टिंग वातावरण में बहुत महंगी, समय लेने वाली या निराशाजनक हो सकती है।
यदि हम पहली पुनरावृत्ति में कोडबेस से मॉड्यूल को हटाते हैं, तो हम डेटाबेस में कई लिंट को रखते हुए अनइंस्टॉल हुक नहीं चला सकते हैं; न केवल कुछ टेबल, बल्कि ज्यादातर चर और स्थान। यदि हम कोडबेस से मॉड्यूल को नहीं हटाते हैं, तो इसका मतलब है कि कोडबेस बासी, अप्रयुक्त कोड के साथ बढ़ेगा; यह कोई प्रदर्शन ओवरहेड नहीं देता है, लेकिन कोड को कठिन और कठिन बनाए रखता है।
आप इस के साथ कैसे पेश आएंगे?
[संपादित करें: तैनाती के बारे में जोड़ा गया नोट एक कठिन प्रक्रिया है, अक्सर]