2011-06-07 8 views
8

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

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

Codeigniter विन्यास भी डिफ़ॉल्ट डेटाबेस और अन्य डेटाबेस का विकल्प है। मुझे आश्चर्य है कि परीक्षण के लिए इनका उपयोग कैसे किया जा सकता है?

उत्तर

8

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

संपादित करें: लाइव साइट पर अपने नए कोड बेस को चरणबद्ध करने के लिए सिम्लिंक का उपयोग करें। अगर यह काम नहीं करता है, तो बस इसे पुरानी निर्देशिका में स्विच करें। आपको बहुत सारी चीजें बचाती है!

+4

अन्य शाखाओं/नई प्रमुख रिलीज पर स्विच करने के लिए सिम्लिंक का उपयोग करना वास्तव में एक बहुत अच्छी युक्ति है। – Wrikken

+0

कहें कि मेरा वेब होस्ट एक साझा होस्ट है। क्या इसका मतलब है कि मैं उस पर vmware/वर्चुअलाइजेशन का उपयोग नहीं कर सकता? – Nyxynyx

+2

आप अपने कंप्यूटर पर वर्चुअलाइज़ेशन का उपयोग करते हैं - जिसे आप अभी टाइप कर रहे हैं। विकास पर्यावरण लाइव वातावरण से पूरी तरह से अलग होना चाहिए। – user151841

5
  1. संस्करण नियंत्रण (svn, git, et al।) पर पढ़ें।
  2. एक जीवित साइट पर काम कभी नहीं, अधिमानतः एक और सर्वर पर अधिमानतः केवल आपके आईपी तक सीमित पहुंच के साथ (while(1){..} दुर्घटनाओं आदि को रोकने के लिए), लेकिन एक ही सर्वर पर कम से कम एक और DocumentRoot/डोमेन पर,।
  3. आम तौर पर मैं केवल तालिका-परिभाषाओं की प्रतिलिपि बनाता हूं (mysqldump -t इसके लिए अच्छा है) और यदि आपको नवीनतम & सबसे बड़ा डेटा चाहिए, तो आप एक अन्य डेटाबेस को पूरी तरह से डेटा कर सकते हैं, आप अपने मुख्य डेटाबेस को टेस्ट-डेटाबेस में दोहरा सकते हैं, जो आपको भी देता है एक सस्ता बैकअप का लाभ यदि आपके पास पहले से कोई नहीं मिला है।
  4. मैं आमतौर पर अपाचे/वोस्ट कॉन्फ़िगरेशन (SetEnv DEV=1) में एक स्विच सेट करता हूं, ताकि कोड में मैं if(getenv('DEV')==1) का उपयोग यह जांचने के लिए कर सकूं कि मैं केवल त्रुटि स्थितियों पर चर को डंप कर सकता हूं, और जो दुर्घटनाग्रस्त होने/अपलोड करने वाले कोड की संभावना को सीमित करता है दुर्घटना से अभी भी 'विकास स्विच'।
2

इस सवाल का जवाब ठेठ परीक्षण वातावरण में अपने काम, नहीं उत्पादन वातावरण कर होने जा रहा है। और मैं मानता हूं कि बदलावों को संभालने का यह सबसे अच्छा तरीका है। यदि आपके पास परीक्षण वातावरण की लक्जरी है, तो इसका पूरा लाभ लें। आखिरकार, परीक्षण के लिए यह वही है।

हालांकि, इसका मतलब यह नहीं है कि उत्पादन वातावरण में काम कर रहे सीमा से बाहर पूरी तरह से है। आपका निर्णय कुछ कारकों पर आधारित होना चाहिए:

  • क्या आपकी वेबसाइट की परिचालन आपकी व्यावसायिक आवश्यकताओं के लिए महत्वपूर्ण है?

यदि ऐसा है, तो अपने सभी काम एक परीक्षण वातावरण में करें और अपने परिवर्तनों का पूरी तरह से परीक्षण करते समय इसे अपने लाइव वातावरण में तैनात करें।

  • क्या आप जिन परिवर्तनों के बारे में हैं, वे शेष वेबसाइट पर बड़े प्रभाव डालने वाले हैं?

उदाहरण के लिए, क्या आप डेटाबेस स्कीमा को बदलने वाले हैं? क्या आप अपनी वेबसाइट से लॉग इन या आउट करने के तरीके को बदल रहे हैं? यदि ऐसा है, तो परीक्षण वातावरण में अपना काम करें। यदि आप किसी ऐसे पृष्ठ का व्यवहार बदल रहे हैं जिसका कहीं और प्रभाव नहीं है, तो आप उत्पादन वातावरण में बदलाव करने से दूर हो सकते हैं।

  • आपके परिवर्तन कब तक लागू होंगे?

यदि आप गारंटी नहीं दे सकते कि आपके परिवर्तन 15-20 मिनट से अधिक समय नहीं लेते हैं, तो अपने काम को परीक्षण वातावरण में करें।

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