हमारे प्रोजेक्ट में लगभग 20 डेवलपर हैं, लेकिन हमारा एप्लिकेशन डाटाबेस का अपेक्षाकृत हल्का उपयोग करता है। हमारे पास लगभग 5 डेटाबेस का संग्रह है, जिनमें से सभी बहुत छोटे हैं और उनमें से 20 से कम टेबल होंगे, जिनमें से कोई भी लाखों पंक्तियां या कुछ भी बड़ा नहीं है।प्रबंध डीबी माइग्रेशन: स्क्रिप्ट बनाम उपकरण
- उपकरण के कुछ प्रकार:
हम समय के साथ डेटाबेस के विकास का प्रबंधन करने के लिए मेज पर दो विकल्प हैं। वर्तमान में हम विजुअल स्टूडियो डेटाबेस प्रोजेक्ट्स का उपयोग कर रहे हैं, जिसमें स्कीमा की वर्तमान परिभाषा है, और एक diff स्क्रिप्ट उत्पन्न करने के लिए संदर्भ डेटाबेस देखें। फिर हम संदर्भ डेटाबेस को अद्यतित करने के लिए इस diff स्क्रिप्ट का उपयोग करते हैं।
- बेसलाइन से डेटाबेस बनाने के लिए संस्करण स्क्रिप्ट का उपयोग करें। स्क्रिप्ट मैन्युअल रूप से स्रोत नियंत्रण में रखी जाती है। पुराने कॉलम/टेबल से डेटा को नए स्थानांतरित करने के लिए कोई डेटा माइग्रेशन इन स्क्रिप्ट का हिस्सा होगा। डीबी में कहीं भी एक संस्करण दर्ज किया जाएगा और उन्नयन डीबी संस्करण और वर्तमान संस्करण के बीच सभी स्क्रिप्ट चलाएगा।
दूसरा विकल्प व्यापक रूप से इस्तेमाल किया जा रहा है और मैं एक गहराई से चर्चा यहाँ पाया है: http://odetocode.com/blogs/scott/archive/2008/01/31/versioning-databases-the-baseline.aspx
समस्या है कि हम क्या हम इस समय मिल गया है के साथ हैहै कि हम उपयोग पर नहीं है हमारे उत्पादन डेटाबेस। इसका मतलब है कि एक रिलीज पैकेज बनाने के लिए, हमें किसी अन्य स्थान पर उत्पादन का बैकअप पुनर्स्थापित करना होगा, उस जनमत डीबी के खिलाफ एक अंतर उत्पन्न करना होगा और स्क्रिप्ट को उत्पादन डीबी टीम को देना होगा। तो उत्पादन के लिए हमारी रिहाई हमारे अन्य वातावरण के लिए अलग है।
यह संस्करण वाली स्क्रिप्ट को अपील करने का विचार बनाता है क्योंकि हम सभी वातावरण में एक ही स्क्रिप्ट का उपयोग करते हैं, और तैनाती में कोई विज्ञापन-कार्य नहीं है (उदाहरण के लिए डीबी संदर्भ के लिए मैन्युअल पुनर्स्थापन)। लेकिन यह देखते हुए कि हमारे पास डीबी की स्थिति बहुत कम है, मुझे लगता है कि हम वहां डीबी टूल्स के लिए शायद ही मुश्किल हो सकते हैं। हम जो चाहते हैं वह उतना आसान है जितना संभव समझना आसान है।
क्या RedGate's suite जैसे टूल इस तरह के परिदृश्य के लिए समझ में आते हैं, या क्या हमें संस्करण वाली स्क्रिप्ट के साथ जाना चाहिए? लागत इतनी अधिक नहीं है, यह सफलता की पिट बनाने के बारे में अधिक है जहां डीबी को बनाए रखना और तैनाती करना उतना ही बुनियादी और स्वचालित है जितना संभव हो।
एक अन्य विशेषता यह है कि भयानक होगा संस्करणों के बीच स्थिर डेटा का प्रबंधन करने के लिए एक रास्ता है करने के लिए किया जाएगा। क्या यह रेड गेट ऑफर या पेशकश करने की योजना है? – joerage
क्या यह उचित माइग्रेशन स्क्रिप्ट में अपने स्थिर डेटा को एसक्यूएल बदलने का सवाल नहीं होगा? –
मुझे तब गलत समझा जाना चाहिए। हालांकि, माइग्रेशन स्क्रिप्ट स्वचालित रूप से डेटाबेस स्कीमा के संस्करण इतिहास के आधार पर उत्पादित की गई थीं। यदि ऐसा होता, तो अगला चरण स्थिर डेटा का प्रबंधन करना होगा और इसे माइग्रेशन स्क्रिप्ट में शामिल करना होगा। – joerage