विकास से लेकर QA तक उत्पादन वातावरण में DB परिवर्तनों को स्थानांतरित करने का एक अच्छा तरीका क्या है? वर्तमान में हम:
- SQL फ़ाइल में परिवर्तन को स्क्रिप्ट करें और उसे TFS कार्य आइटम में संलग्न करें।
- कार्य की समीक्षा की जाती है
- जब काम परीक्षण के लिए तैयार हो जाता है तो SQL QA पर चलाया जाता है।
- काम क्यूए परीक्षण किया है
- जब काम उत्पादन के लिए तैयार होता है तो SQL उत्पादन डेटाबेस पर चलाया जाता है।
इसके साथ समस्या यह है कि यह बहुत मैनुअल है। यदि यह डेवलपर भूल जाता है तो यह sql या सहकर्मी-समीक्षक को इसे पकड़ने के लिए याद रखने वाले डेवलपर पर निर्भर करता है। कभी-कभी, यह परीक्षक या QA के लिए मौजूद होता है जो समस्या का पता लगाता है।
एक माध्यमिक समस्या यह है कि आप कभी-कभी परिवर्तनों को मैन्युअल रूप से समन्वित करने की आवश्यकता समाप्त करते हैं यदि दो अलग-अलग कार्य एक ही डेटाबेस ऑब्जेक्ट को बदलते हैं। यह सिर्फ तरीका हो सकता है, लेकिन यह अभी भी लगता है कि इन मुद्दों या कुछ "झंडा" के कुछ स्वचालित तरीके होना चाहिए।
हमारा सेटअप: हमारी विकास की दुकान बहुत सारे डीबी अनुभव वाले डेवलपर्स से भरी हुई है। हमारी परियोजनाएँ बहुत DB उन्मुख हैं। हम मुख्य रूप से एक .NET और MS SQL शॉप हैं। वर्तमान में हम अपने काम को ट्रैक करने के लिए MS TFS कार्य आइटम का उपयोग कर रहे हैं। यह कोड परिवर्तन के लिए आसान है क्योंकि यह परिवर्तन को कार्य आइटम से जोड़ता है ताकि मैं यह पता लगा सकूं कि QA और उत्पादन वातावरण में माइग्रेट करते समय मुझे किन परिवर्तनों को शामिल करने की आवश्यकता है। हम वर्तमान में एक DB परियोजना का उपयोग नहीं कर रहे हैं, लेकिन भविष्य में उस पर स्विच कर सकते हैं (हो सकता है कि उत्तर का हिस्सा हो)।
मैं अपने स्रोत नियंत्रण प्रणाली के लिए बहुत ही अभ्यस्त हूं, जो मेरे लिए इस तरह की चीजों का ख्याल रखता है और मेरी एसक्यूएल के लिए भी यही बात होगी।