हम आपके दृष्टिकोण के विस्तारित संस्करण का उपयोग करते हैं।
हमारे पास प्रत्येक रिलीज के लिए डेटाबेस अपग्रेड फ़ोल्डर है, जिसमें रिलीज का हिस्सा हैं जो सभी स्क्रिप्ट शामिल हैं। फ़ोल्डर में एक अनुक्रमणिका फ़ाइल है, जिसमें सभी स्क्रिप्ट्स के छद्म लिंक शामिल हैं जिन्हें चलाना चाहिए।
हमारे पास एक क्रूज़ कंट्रोल जॉब है जो वर्तमान उत्पादन डेटाबेस की एक प्रति को पुनर्स्थापित करने के लिए हर रात चलता है, फिर इसके खिलाफ मौजूदा रिलीज की अपग्रेड स्क्रिप्ट चलाता है (इंडेक्स फ़ाइल में परिभाषित स्क्रिप्ट को निष्पादित करके)। एक सीआई नौकरी भी होती है जो किसी भी व्यक्ति को वर्तमान रिलीज के लिए अपग्रेड फ़ोल्डर में कुछ भी जांचता है।
स्क्रिप्ट को स्पष्ट रूप से पुन: चलाने की आवश्यकता है, उदाहरण के लिए उन्हें छोड़ने या इसे बनाने से पहले कुछ के अस्तित्व की जांच करनी चाहिए।
स्रोत
2011-06-21 12:02:00
तो, यदि परिवर्तन फ़ाइल में शामिल है और INSERT INTO, तो क्या आप पहले इसके अस्तित्व की जांच करते हैं? चुनें ... कहाँ? अगर जांच करने के लिए कोई पहचानकर्ता नहीं है तो क्या होगा? – Tower
मुझे लगता है कि यह वास्तव में निर्भर करता है कि आप क्या डाल रहे हैं, और इसे दो बार डालने के क्या परिणाम हैं। क्या यह एक अद्वितीय इंडेक्स बाधा के कारण असफल हो जाएगा, या यह अंदर जाएगा, और यदि ऐसा है, तो क्या यह खराब डेटा बनाएगा? हम स्थिरता सुनिश्चित करना चाहते हैं, इसलिए हमारे आवेषण आमतौर पर IF [NOT] EXISTS द्वारा लिपटे होते हैं (x से चुनें 1 ...)।कभी-कभी WHERE क्लॉज में मिलान करने के लिए दो फ़ील्ड होंगे - यदि आप कुछ डालने वाले हैं, तो आपको पता होना चाहिए कि वे क्या हैं और अधिकांश इकाइयों में प्राकृतिक प्रकार की प्राकृतिक कुंजी होगी। –