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


9

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

मेरा प्रश्न यह है कि मैं इस साइट को लाइव पर्यावरण पर कैसे अपलोड करूं और पिछले दो सप्ताह में जोड़े गए नए सामग्री नए उपयोगकर्ताओं को अधिलेखित किए बिना डेटाबेस को अपडेट करूं?


मुझे लगता है कि आपको लाइव साइट को बंद करना होगा अर्थात "कोई उपयोगकर्ता अपडेट लागू नहीं कर सकता है", अपने विकास सर्वर पर लाइव साइट को सिंक्रनाइज़ करें, अपने परिवर्तन लागू करें और फिर से सिंक्रनाइज़ करें। मेरे पास निम्न सेटअप है: विकास सर्वर (केवल अपडेट कोड आदि को जोड़ने के लिए), एक मास्टर सर्वर - विकास सर्वर को इसके लिए तैनात किया जाता है, (जहां उपयोगकर्ता सामग्री जोड़ते हैं) और एक लाइव सर्वर (मास्टर को इस पर तैनात किया जाता है)।
साइक्लोनोस्कोप

जवाबों:


3

थॉमस ज़ाहरुद्दीन सही है। लेकिन जो बदल गया है उसके आधार पर ("मुझे कुछ हफ़्ते लगे हैं ..."), विचार करने के लिए और भी चीजें हैं।

  1. क्या आपने सामग्री प्रकार जोड़े / बदले। उन्हें निर्यात और आयात करने का प्रयास करें। सुनिश्चित करें कि आप सामग्री नहीं खो रहे हैं।
  2. क्या आपने विचार जोड़े / बदले? आप उन्हें सुरक्षित रूप से निर्यात और आयात कर सकते हैं।
  3. मॉड्यूल अपडेट। वर्तमान डेटा पर उनका परीक्षण करें। हमेशा एक मौका होता है कि उपयोगकर्ता डेटा अपडेट को तोड़ देता है।
  4. मॉड्यूल कॉन्फ़िगरेशन बदलता है। यदि यह बहुत अधिक नहीं है, तो नोट्स लें और उन्हें फिर से करें। एल्स फीचर्स और मजबूत आर्म मॉड्यूल की कोशिश करते हैं । एक अन्य विकल्प सटीक चर नामों का पता लगाना और मूल्यों को लिखना है settings.php
  5. आपके पास देव प्रणाली में अतिरिक्त सामग्री है। यहां चीजें वास्तव में बालों वाली मिलती हैं। आप परिनियोजन मॉड्यूल या नोड निर्यात की कोशिश कर सकते हैं । लेकिन वे चांदी की गोलियां नहीं हैं।

यदि आपके पास तुच्छ मामला नहीं है, तो मैं आपकी प्रक्रिया का परीक्षण करने के लिए पहले से तैयार हूं। और निश्चित रूप से लाइव सिस्टम पर शुरू करने से पहले फ़ाइलों और डेटा का बैकअप लें। ( बैकअप और माइग्रेट यहाँ काम आता है।)


1

आपको यह जांचना है कि आप क्या बदलना चाहते हैं:

  • contenttype या बंडल -> नया contenttype डालें। नोडल, नोड्स को एक्सपोर्ट और इम्पोर्ट करें, या इस रिकॉर्ड के लिए contenttype | बंडल को डेटाबेस में बदलें।
  • एकल फ़ील्ड्स का नाम और कंटेंटटाइप्स में होने वाली गड़बड़ी | बंडल -> जैसे कि व्यवस्थापक इंटरफ़ेस या
  • फ़ील्ड में मान -> सबसे कठिन कार्य: आप इसे डेटाबेस में SQL के माध्यम से (शायद) या माइग्रेट जैसे मॉड्यूल के साथ कर सकते हैं

1

मेरे पास Drupal वेबसाइटों को अपडेट करते समय काम को संभालने के लिए एक ही प्रक्रिया है। सबसे बड़ी समस्या यह है कि ड्रुपल अपने डेटाबेस में कंटेंट और लॉजिक्स को अलग रखने के लिए वास्तव में एक अच्छा काम नहीं करता है।

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

मैं आपको एक विकास टिप देना चाहूंगा, जो मुझे हमारी वेबसाइटों को बनाए रखने में बहुत परेशानी से बचाता है: अपने लॉगिक्स को अपने कोड (मॉड्यूल / थीम) में यथासंभव रखने की कोशिश करें। जैसे, जितना संभव हो सके दृश्य बनाने से बचने की कोशिश करें। कभी-कभी आपको करना होगा, लेकिन इसके लिए एक और डेटाबेस अपडेट की आवश्यकता होगी ...

स्रोत नियंत्रण प्रबंधन का उपयोग करें!

यदि आप सब कुछ कोड के नीचे रखने में सक्षम हैं (ज़ाहिर है, तो आप हमेशा ऐसा करने में सक्षम होंगे), आप बस अपने स्रोत को अपडेट करने के लिए गिट , सबवर्सन या मर्करी जैसे एससीएम का उपयोग कर सकते हैं , और सबसे खराब स्थिति में वापस जाएं यदि आपके अपडेट की योजना के अनुसार काम नहीं कर रहा है तो आपके स्रोत का पिछला संस्करण।

और, ज़ाहिर है, जैसा कि पिछले उत्तरों में संबोधित किया गया है: बैकअप, बैकअप, बैकअप, बैकअप ...


0

अधिकांश परिवर्तनों के लिए आप सुविधाएँ मॉड्यूल का उपयोग कर सकते हैं यह मॉड्यूल केवल परिवर्तनों को बदल सकता है, आपने स्थानीय वातावरण पर क्या किया है।

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


0

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


Drupal के जवाबों में आपका स्वागत है! जबकि मुझे यकीन है कि उपरोक्त ने आपके लिए बहुत अच्छा काम किया है, यह बहुत मजबूत नहीं है। इसमें टाइपिंग का सामान टाइपो का होता है, और अगर अगली बार लाइव पर नया सामान होता है, तो यह ओवरराइट हो जाएगा (जब तक कि आप इसे फिर से टाइप करना याद नहीं करते)।
फ्री रेडिकल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.