एक विकास परियोजना की कई शाखाओं में स्कीमा परिवर्तनों पर नज़र रखने का एक अच्छा तरीका यह होगा कि एक का पालन किया जाए। डेटाबेस रिफैक्टरिंग प्रक्रिया। अन्य लाभों के अलावा, इस प्रकार की प्रक्रिया में प्रत्येक वातावरण (या आपके मामले में शाखा) में स्कीमा परिवर्तन लागू करने के लिए डेल्टा और माइग्रेशन स्क्रिप्ट का उपयोग शामिल है। सेटअप कुछ इस तरह दिख सकता है:
main
src <-- ASP.NET project source
db <-- Database create scripts
delta <-- Database change scripts (SQL delta files)
branch
src
db <-- usually has the same contents as the copy in main branch
delta <-- only the changes necessary for this branch
हर बार जब आपको किसी विशेष शाखा के लिए डेटाबेस स्कीमा को बदलने की आवश्यकता होती है तो आप एक SQL डेल्टा स्क्रिप्ट बनाते हैं जिसका उपयोग परिवर्तन को लागू करने के लिए किया जाता है। इसे आसान बनाने के लिए मैं प्रत्येक स्क्रिप्ट फ़ाइल को क्रम में रखने के लिए दिनांक और समय बनाने के लिए नामकरण करने का सुझाव दूंगा। उदाहरण होगा:
201102231435_addcolumn.sql
201102231447_addconstraint.sql
201103010845_anotherchange.sql
डेल्टा फ़ाइलों को उस शाखा में स्रोत नियंत्रण में जोड़ें जहाँ स्कीमा परिवर्तन करने की आवश्यकता है। आपको प्रत्येक शाखा के साथ समाप्त होना चाहिए जिसमें संबंधित डेटाबेस को बदलने के लिए आवश्यक है। आपकी ब्रांचिंग स्कीम जैसी चीज़ों के आधार पर आपकी स्थिति के लिए कुछ विवरणों को बदलने की आवश्यकता हो सकती है और आपकी रिलीज़ प्रक्रिया के दौरान आपका डेटाबेस संरक्षित है या नहीं (जैसा कि फिर से बनाया गया है)।
अंत में, इन अवधारणाओं को सरल बनाने की कोशिश करने के लिए, मैं प्रक्रिया को प्रबंधित करने में मदद करने के लिए एक उपकरण की सिफारिश करूंगा। मेरा सुझाव है कि DBDeploy पर एक नज़र डालें / DBDeploy.NET . मैं सालों से खुशी-खुशी इसका इस्तेमाल अपने सभी प्रोजेक्ट्स पर कर रहा हूं।