6

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

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

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

उत्तर

1

आपके डेटाबेस में 3 प्रकार की चीज़ें होंगी जिनके बारे में आपको चिंता करने की आवश्यकता है।

1) स्कीमा, जिसे डीडीएल में परिभाषित किया जा सकता है। 2) स्टेटिक या लुकअप डेटा, जिसे डीएमएल में परिभाषित किया जा सकता है। 3) गतिशील (या उपयोगकर्ता) डेटा जिसे डीएमएल में भी परिभाषित किया जा सकता है।

आम तौर पर करने के लिए (1) और (2) बस कोड के साथ उत्पादन करने के लिए ऊपर जाना चाहिए वे पर पारस्परिक रूप से निर्भर हैं बदल जाता है। (3) कभी नहीं जाना चाहिए, लेकिन उस समय उत्पादन वातावरण के साथ समन्वयित होने पर विकास वातावरण में कॉपी किया जा सकता है।

बेशक यह उससे कहीं अधिक जटिल है। प्राप्त करने के लिए (1) अप को विशिष्ट परिवर्तन कथन में एक्ससीटिंग स्कीमा/डीडीएल को परिवर्तित करने की आवश्यकता हो सकती है, और यदि डेटा प्रकार या स्थान बदल रहे हैं तो डेटा मैनिपुलेशन की भी आवश्यकता हो सकती है। (2) प्राप्त करने के लिए कोड निर्माण के साथ सिंक्रनाइज़ेशन की आवश्यकता होती है जो जटिल वातावरण में कठिन हो सकती है।

वहाँ वहाँ बाहर कई उपकरण हैं और अगर आप स्वचालन की आवश्यकता होती है तो आप शायद किसी को उन लोगों के साथ परिचित से सलाह की जरूरत है।

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

हालांकि किसी भी सफलता की कुंजी काम समय परिवर्तन किया जाता है पर परिवर्तन के लिए आवश्यक को परिभाषित किया गया है।विकास डीबी को बदलने और फिर तैनाती के समय पर उपचार करने की बेवकूफ विधि एक आपदा है।

0

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

यानी आप या तो /site/images/icon.png को रोक सकते हैं और /site/images/default/icon.png या /site/images/client/icon.png या जब आप पेज को लिखते हैं वहां चेक कर सकते हैं और उचित यूआरएल भेज सकते हैं ताकि सर्वर उन्हें सीधे सेवा दे सके।

दूसरे के लिए, जब आप क्लाइंट डेटा का उपयोग कर सकते हैं, तो यह एक कानूनी आईपी मुद्दा है कि आपको क्लाइंट से बात करने की आवश्यकता होगी कि वे क्या हैं) इच्छुक हैं और बी) साझा करने में भी सक्षम आपके साथ उनकी सामग्री। उसके बाद, तकनीक सीधा है।

+0

हमारे व्यापार की प्रकृति और ग्राहकों के साथ अनुबंध के कारण, उत्पादन सर्वर से सामग्री को खींचने के साथ लगभग कोई कानूनी समस्या नहीं होती है। मैं तकनीक से परिचित नहीं हूँ। क्या आप विस्तार से बात करेंगे? मुझे डीबी का बैक अप लेने और इसे बहाल करने के लिए उपयोग किया जाता है लेकिन अगर आप ऐसा करते हैं तो निश्चित रूप से समस्याएं होती हैं और चल रहे विकास चल रहे हैं। – Jeff

संबंधित मुद्दे