मैं एक विकास प्रतिलिपि पर किसी साइट पर अपडेट कैसे कर सकता हूं, लेकिन फिर लाइव साइट के विकसित डेटाबेस को ओवरराइड किए बिना अपडेट वापस ले सकता हूं?


20

मैंने जितना संभव हो सके शीर्षक में वर्णनात्मक होने की कोशिश की है, और मुझे पता है कि यह प्रश्न पहले विभिन्न रूपों में पूछा गया है, लेकिन मुझे इसका अच्छा जवाब नहीं मिला और यह कल्पना करना है कि किसी ने भी इस मुद्दे को हल नहीं किया है।

WP साइट लाइव होने के बाद यह सरल है, अगर यह एक स्थिर नहीं है, तो यह नई पोस्ट्स, नए woocommerce आदेश, नए उपयोगकर्ता खाते आदि जोड़कर डेटाबेस को अपडेट करता रहता है।

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

यदि परिवर्तन केवल थीम और सीएसएस जैसी फाइलों में हैं, तो यह कुछ हद तक आसान है। हालाँकि, यदि परिवर्तनों में डेटाबेस में परिवर्तन शामिल हैं, जैसे नए प्लगइन्स जोड़ना और इन प्लगइन्स से जुड़ने / संबंधित सामग्री जोड़ना, तो मैं अब साइट को वापस कॉपी नहीं कर सकता, क्योंकि यह लाइव में जोड़े गए किसी भी नए परिवर्तन को ओवरराइड कर देगा। साइट का डेटाबेस। सभी नए पोस्ट, नए ऑर्डर, नई छवि अपलोड, सभी मिटा दिए जाएंगे।

अब मुझे पता है कि अलग-अलग मामलों के परिदृश्य के अलग-अलग समाधान होते हैं, लेकिन क्या कोई ऐसा तरीका नहीं है जो सभी मामलों को संबोधित करता हो?

उदाहरण के लिए, यदि केवल वही परिवर्तन जो लाइव साइट पर किए गए थे, नए पोस्ट थे, तो मैं उन पोस्ट को देव साइट पर निर्यात और आयात कर सकता हूं और फिर पूरी साइट को स्थानांतरित कर सकता हूं। कुछ अन्य वस्तुओं के साथ भी, लेकिन हर प्रकार की वस्तु के साथ नहीं। और इसके साथ दूसरी समस्या यह है कि wordpress में एक्सपोर्ट और इम्पोर्ट फंक्शन abysmal है। यह बहुत अल्पविकसित है और आपके पास केवल विशिष्ट वस्तुओं का चयन करने और निर्यात करने के लिए बहुत कम विकल्प हैं। मैं शायद वहाँ से बाहर हर "उन्नत आयात / निर्यात" प्लगइन की कोशिश की है और इस मुद्दे को हल करने के लिए अभी तक कुछ भी नहीं है।

तो एक अन्य सूत्र में, किसी ने इस प्लगइन को मूल रूप से लाइव साइट पर एक थीम पर स्थापित करने और काम करने के लिए बताया , जबकि नियमित उपयोगकर्ता अभी भी मौजूदा विषय देखते हैं, लेकिन फिर भी सभी प्रकार के परिवर्तनों को हल नहीं करता है। क्योंकि यदि आप सामग्री में बदलाव करना चाहते हैं, तो हम पाद या नौसेना मेनू कहते हैं, यह ऐसी चीजें हैं जो अभी भी मौजूदा देखने योग्य विषय / साइट में प्रतिबिंबित होंगी और नई परीक्षा थीम पर ठीक लग सकती हैं, लेकिन लाइव नहीं।

क्या एक ही साइट / डेटाबेस पर किसी साइट की "शाखा" विकसित करने और फिर स्विच करने का कोई तरीका नहीं है? या देव स्थल पर विकसित करने का कोई तरीका नहीं है, लेकिन फिर डेटाबेस को गैर-विनाशकारी तरीके से मर्ज करते हैं? यदि आप जानते हैं कि आप किन घटकों और चीजों को प्रभावित करते हैं, तो क्या ऐसा करने का कोई तरीका नहीं होगा? या इस तरह का प्रयास करने के लिए आपको MySQL मास्टर होने की आवश्यकता होगी।

मैं केवल एक ही ऐसा नहीं हो सकता हूं। मैं सोच भी नहीं सकता कि इस मुद्दे का कोई हल नहीं है। यह कैसे किया जा सकता है?

अग्रिम में धन्यवाद।


3
सभी को यह समस्या है और कोई सरल उपाय नहीं है, कोड को पुनरीक्षण नियंत्रण में रखें, एसक्यूएल सर्वर पर डंप एसक्यूएल रखें, माइग्रेशन (5-10min) के दौरान रखरखाव लॉकआउट बनाएं।
व्यैक

मैं असहमत हूँ। CrowdFavorite का RAMP प्लगइन उन लोगों के लिए एक सरल उपाय है, जिन्हें कंटेंट को स्टेज करने और तैनात करने की आवश्यकता होती है। इसे "सरल समाधान" कहना एक खिंचाव हो सकता है, लेकिन यह अच्छा है और किसी भी डेवलपर को इसे स्थापित करने में सक्षम होना चाहिए (SSH और रिमोट MySQL एक्सेस आदि की आवश्यकता है)
jb510

किसी ने साइटपश की कोशिश की है ? मैं रैंप के लिए $ 250 का भुगतान करने से इनकार नहीं करता अगर यह एक बेहतर समाधान है, लेकिन बाहर से यह देखना मुश्किल है कि ये सिस्टम पूरी तैनाती और परीक्षण के बिना कितनी अच्छी तरह काम करते हैं मुझे लगता है।
जेम्स

उपयोग नहीं किया साइटमैप। ऐसा लगता है कि यह पूरी तरह से डीबी को धक्का देता है (जैसे माइग्रेट डब्ल्यूपी डीबी प्रो)। यह एक स्थिर साइट को तैनात करने के लिए अच्छा है, लेकिन एक लाइव डायनामिक (यानी नई पोस्ट / टिप्पणी) पर विफल रहता है। RAMP वास्तव में DB और मर्ज के बीच अंतर का प्रबंधन करता है, लाइव DB की जगह नहीं लेता है।
jb510

आप अपने DB संस्करण को नियंत्रण में रखते हुए, एक ओपन सोर्स प्रोजेक्ट DBV PHP का उपयोग करना चाह सकते हैं । यहां तक ​​कि प्रबंधन को आसान बनाने के लिए इसमें UI भी है। एक अन्य विकल्प उदाहरण के लिए लारवेल पर स्विच करना होगा, जिसके पास अपने सीएलआई ऐप में एक माइग्रेशन टूल है।
kaiser

जवाबों:


2

वास्तव में कोई आसान तरीका नहीं है जो आप करना चाहते हैं, लेकिन मैं जो करूंगा वह आपकी साइट का एक स्नैपशॉट है, योरू परिवर्तनों को लागू करें और यदि कुछ भी ब्रेक बहाल करता है और फिर से प्रयास करें। यह एक घंटे के लिए नीचे हो सकता है, लेकिन मैंने अभी हाल ही में ऐसा किया था जब मैंने किसी तरह एक साइट पर ईंट लगाई थी जिस पर मैं काम कर रहा था। हालांकि यह मेरे लिए काम करने वाली समस्या को हल करने का "सही" तरीका नहीं हो सकता है। सौभाग्य।


यह कैसे संभव हो सकता है कि WP टीम ऐसा करने के बारे में सोच-विचार न करे? यह 2018 है !!
asael2
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.