2009-06-16 9 views
5

चेतावनी: लंबा प्रश्न।आप डेटाबेस की एकाधिक शाखाओं को नियंत्रित और प्रबंधित कैसे करते हैं?

[प्रश्न]

नीचे समस्या है, जहां स्क्रिप्ट नियंत्रित संस्करण रहे हैं में वर्णित के रूप रणनीति, डेटाबेस प्रति एक शाखा है करने के लिए है।

कम शाखाओं को समेकित करने का प्रयास करते समय आप डेटा माइग्रेशन समस्याओं का प्रबंधन कैसे करते हैं?
क्या यह डेटा लागत के हिस्से के रूप में केवल एक लागत है?

माइग्रेशन के समय स्क्रिप्ट को अनिवार्य रूप से परिवर्तित करना होगा।

क्या कोई बेहतर तरीका है?
क्या हमारे पास दोनों मुद्दों को एक ही समय में हल किया जा सकता है?
सबसे अच्छा अभ्यास क्या है?

[पृष्ठभूमि]

मेरे काम के स्थान पर हम एक उत्पाद है जो 3 शाखाएं है। मेनलाइन में "नवीनतम और सबसे बढ़िया" परिवर्तन हैं जो रिलीज के लिए आवश्यक नहीं हैं।

  • संस्करण बी
  • संस्करण एक (नाम दोषी की रक्षा के लिए बदल दिया गया है) वहाँ प्रभावी ढंग से है
  • मेनलाइन
क्योंकि इन शाखाओं के

(नाम दोषी की रक्षा के लिए बदल दिया गया है) डेटाबेस के 3 संस्करण। कोड संस्करण नियंत्रण काफी आसान है हालांकि डेटाबेस संस्करण नियंत्रण मुश्किल लगता है।

Do you use source control for your database items? पढ़ने के बाद ऐसा लगता है कि प्रत्येक ऑब्जेक्ट/तालिका के लिए सभी निर्माण स्क्रिप्ट निर्यात करना सबसे अच्छा तरीका है। नोट: आप इसे कैसे प्रबंधित करते हैं, एक बड़ी स्क्रिप्ट या एकाधिक स्क्रिप्ट या हाइब्रिड में, लेख के अनुसार आपकी वरीयता है।

मैं इस से सहमत हूं और यह पूछताछ की है कि यह क्यों नहीं किया गया है।

वर्तमान में डीबीए शाखाओं में लिपियों को शाखा बनाने से इनकार करते हैं। आलस्य के रूप में आलस्य के अलावा डेटा माइग्रेशन के साथ समय बचाने का कारण है। प्रभावशाली रूप से डेटाबेस परिवर्तन सभी संस्करणों में जबरन बनाए रखा जाता है।

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

संस्करण ए पर डेटाबेस अपडेट करने के लिए सभी पैच को संस्करण ए के साथ निकाला जाता है जो फ़ाइल को लागू करने के लिए पैच करता है।

[SCENARIO] अस्तित्व ऊपर

  • 3 संस्करणों।
  • डाटाबेस परिवर्तन संस्करण ए
  • शाखा समेकन जहां कोड संस्करण बी से ए में विलय किया गया है ताकि संस्करण बी को हटाया जा सके।
  • डेटाबेस के साथ होने की आवश्यकता है।

आशा है कि यह समझ में आता है।

+0

क्या आप कृपया यह स्पष्ट कर सकते हैं कि आपकी कोई भी डेटाबेस स्क्रिप्ट वर्तमान संस्करण-नियंत्रित है या नहीं? या क्या आप अपने डेटाबेस की कई शाखाओं को बनाए रखने के लिए भविष्य में स्रोत नियंत्रण का उपयोग करने की योजना बना रहे हैं? साथ ही, क्या शाखाएं पूरी तरह से शाखाओं से छुटकारा पाने के लिए डेटाबेस को मर्ज करने के बारे में आपका प्रश्न है या केवल एक बार? –

+0

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

उत्तर

3

Chapter 8 पर Eric Sink's Source Control HOW TO पर एक नज़र डालें। यह स्रोत नियंत्रण के इन्स और बहिष्कार को समझने के लिए एक महान संसाधन है।

+0

nikmd23, लिंक के लिए धन्यवाद। स्रोत नियंत्रण विलय वास्तव में है जैसा आपने संदर्भित किया है। हालांकि कैसे एकाधिक डाटाबेस परिवर्तन हुए हैं और किसी भी स्क्रिप्ट परिवर्तन सही ढंग से शाखाओं में विलय कर रहे हैं यदि। , यह सिर्फ एक लागत व्यक्ति परिवर्तनों का विवरण को सौंपा कहना महीने बाद है समय में होता है वे लिखित रूप में निवेश करने के लिए स्क्रिप्ट आदि बदलने मुद्दा डेटाबेस स्क्रिप्ट नियंत्रण नहीं है मुद्दा डेटा प्रवास लागत है । क्या इसके आसपास कोई रास्ता है? उदाहरण के लिए डेटा माइग्रेशन के लिए प्रत्येक बदलाव के लिए एक स्क्रिप्ट बनाए रखना? क्या मुझे कुछ याद आया है? –

+1

प्रत्येक स्कीमा परिवर्तन को डेटा माइग्रेशन को ध्यान में रखना चाहिए। कभी-कभी, स्कीमा परिवर्तनों में डेटा में किसी भी बदलाव की आवश्यकता नहीं होती है। कभी-कभी, उन्हें डेटा में बदलाव की आवश्यकता होगी। उस स्थिति में, यह डेटा बदलने के लिए इन परिवर्तन स्क्रिप्ट पर निर्भर करता है, हालांकि यह आवश्यक हो सकता है। –

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

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