यह नोट करना महत्वपूर्ण है कि आप को सक्रिय करने और प्लग-इन को निष्क्रिय करने की जरूरत नहीं है जब आप संस्करण के लिए संस्करण से वर्डप्रेस कोर उन्नयन। Here is an explanation from Ryan Boren on why। प्लगइन के आधार पर, उनमें से कुछ को में अपग्रेड में बनाया गया अपग्रेड प्रक्रिया हो सकती है - अर्थात, प्लगइन का अपग्रेड, वर्डप्रेस का नहीं। कोई भी कम नहीं, मैं आपके तीन प्रश्नों के माध्यम से जाऊंगा और जितना संभव हो उतना उत्तर दे सकता हूं।
1।क्या नवीनतम कोड वाले उत्पादन और स्टेजिंग सर्वरों के बारे में मेरी चिंता है लेकिन नवीनतम कोड के लिए आवश्यक कोई डेटाबेस अपडेट अनुपलब्ध है?
हाँ, जब अद्यतन करने, अगर वहाँ डेटाबेस स्कीमा में परिवर्तन होता है, तो वर्डप्रेस ठीक से काम नहीं करेंगे जब तक कि नए स्कीमा मौजूद है। वर्डप्रेस के व्यवस्थापक पक्ष तक पहुंचने का प्रयास करते समय, यदि आपके वर्डप्रेस संस्करण की तुलना में डीबी संस्करण कम है, तो यह आपको डेटाबेस अपग्रेड पेज पर रीडायरेक्ट करेगा।
वर्डप्रेस /wp-includes/version.php फ़ाइल में एक वैश्विक $wp_db_version
बुलाया सेट और अगले करने के लिए प्रत्येक पिछले संस्करणों से संवर्द्धित डेटाबेस उन्नत करने के लिए जब तक संस्करण संख्या तिथि, seen here पर निर्भर है माइग्रेशन स्क्रिप्ट से प्रत्येक बनाए रखता है। यहां एक एफएक्यू में एक सरल सूची है जो दिखाती है कि संशोधन संख्या WordPress versions. से कैसे संबंधित है।
2. यदि हां, तो क्या किसी के पास विचार है कि मैं प्लगइन्स को निष्क्रिय/पुनः सक्रिय करने के लिए कैपिस्ट्रानो तैनाती कोड कैसे संशोधित कर सकता हूं?
जैसा कि मैंने ऊपर कहा, आप आमतौर पर न सक्रिय/कोर उन्नयन के बाद प्लगइन्स निष्क्रिय करते हैं, जब तक कि मैं प्लगइन लगता है विशेष रूप से की आवश्यकता है कि आप ऐसा करने की जरूरत है। यदि वर्डप्रेस में स्कीमा परिवर्तन प्लगइन तोड़ता है, तो प्लगइन डेवलपर्स को एक नया संस्करण जारी करने की आवश्यकता होगी। को अपग्रेड करते समय प्लगइन करते समय, इसे बंद कर दिया जाएगा और फिर से शुरू किया जाएगा, और इसके डेवलपर्स की ज़िम्मेदारी यह सुनिश्चित करने की ज़िम्मेदारी है कि ऐसा करने की ज़रूरत है।
हालांकि आपको अलग-अलग मशीनों पर वास्तविक अपग्रेड प्रक्रिया होने के कारण अलग-अलग तैनात वातावरण में अलग-अलग निष्क्रिय/सक्रिय करने की आवश्यकता हो सकती है, और इस प्रकार संभवतया एक अलग डेटाबेस जो इसका अंततः उपयोग किया जाएगा।
शायद सबसे अच्छी बात यह है कि आपकी तैनाती स्क्रिप्ट वर्डप्रेस के भीतर एक प्लगइन के यूआरआई को हिट करेगी, एक प्लगइन जिसे आप लिखेंगे जो प्लगइन को निष्क्रिय/सक्रिय करेगा, या मौजूदा वाला जो पहले से ही करता है।
यह संभव है कि कुछ बाहर निकलने वाले प्लगइन्स आपकी तलाश के कुछ हिस्सों को संभाल सकें, लेकिन मैं आपके प्रश्न का मुख्य घटक स्वचालन होने के लिए लेता हूं, और प्रत्येक वातावरण में लॉग इन करने और प्रत्येक के लिए प्लगइन अपग्रेड करने से बचने के लिए, इसलिए विकासशील एक खुद को जो वास्तव में आपको चाहिए वह करने का तरीका हो सकता है। एक प्लगइन विकसित करना संभव है यदि आप पहले से ही प्रदान किए गए टूल का उपयोग करते हैं।
पूरे /wp-admin/includes/plugin.php फ़ाइल के माध्यम से देखो जो आपके लिए उपयोगी हो सकता है देखने के लिए। इसके अतिरिक्त चेकआउट कोड जो /wp-admin/plugins.php में व्यवस्थापक पक्ष में प्लगइन को वास्तव में संभालता है - यह देखने के लिए कि यह कैसे किया जाता है। प्लगइन को डी-एक्टिवेट करते समय $silent
true
के रूप में $silent
को गुजरने पर विचार करें, तो deactivate_plugin
हुक को प्लगइन के साथ प्लगइन कॉन्फ़िगरेशन से पोंछने से रोकना चाहें।
यह वास्तव में चालाक बनाने के लिए, आप शायद get_option('active_plugins')
हड़पने के लिए देखने के लिए, जो प्लग इन पहले से ही सक्रिय थे चाहता हूँ, और केवल (यकीन है कि प्लग इन प्रक्रिया से खुद को शामिल नहीं कर रहे हैं) उन पर अपनी स्क्रिप्ट चलाने
3. वर्डप्रेस में बदलावों के बारे में क्या, उदाहरण के लिए, 3.2 से 3.3?
3.2 से 3.3 के परिवर्तनों को किसी अन्य परिवर्तन के सेट से अलग नहीं माना जाना चाहिए, इसलिए यहां जो भी कहा गया है, वह लागू होता है।
4. यदि Capistrano इस के लिए उपकरण नहीं है - और मैं व्यवस्थापक में प्रवेश करके और अधिक "मैन्युअल" यह करने के लिए की जरूरत है - वहाँ एक रखरखाव मोड उपकरण/प्लगइन है कि कुछ हद तक की निष्क्रियता/सक्रियण स्वचालित करेगा है प्लगइन्स ताकि सक्रियण पर कोई अपडेट ट्रिगर हो?
मुझे नहीं लगता कि Capistrano यहां भारी भारोत्तोलन कर रहा है - लेकिन यह निश्चित रूप से रास्ते में नहीं है। आपको बस प्लगइन के भीतर यूआरआई को मारने में सक्षम होना चाहिए, और उसे एप्लिकेशन के भीतर चीजें रोलिंग करनी चाहिए। महत्वपूर्ण बात यह है कि जाहिर है कि उन सभी कार्यों को उपलब्ध होने की आवश्यकता है ताकि आप इसे स्वतंत्र स्क्रिप्ट में न चला सकें।