इतने सारे लोग इस तरह का काम करने की कोशिश करते हैं (डिफ स्कीमा)। मेरी राय है
- स्रोत कोड एक संस्करण नियंत्रण उपकरण (सबवर्जन, सीएसवी, जीआईटी, पर्सफोर्स ...) में जाता है। इसे ऐसे समझें जैसे कि यह जावा या सी कोड था, यह वास्तव में अलग नहीं है। आपके पास एक इंस्टॉल प्रक्रिया होनी चाहिए जो इसकी जांच करे और इसे डेटाबेस पर लागू करे।
- डीडीएल स्रोत कोड है। यह संस्करण नियंत्रण उपकरण में भी जाता है।
- डेटा एक ग्रे क्षेत्र है - लुकअप टेबल शायद एक संस्करण नियंत्रण उपकरण में होना चाहिए। एप्लिकेशन जनरेट किया गया डेटा निश्चित रूप से नहीं होना चाहिए।
जिस तरह से मैं इन दिनों काम करता हूं वह रूबी ऑन रेल्स माइग्रेशन के समान माइग्रेशन स्क्रिप्ट बनाना है। अपने डीडीएल को स्क्रिप्ट में डालें और डेटाबेस को संस्करणों के बीच स्थानांतरित करने के लिए चलाएं। किसी एकल फ़ाइल या फ़ाइलों के सेट में रिलीज़ के लिए समूह परिवर्तन। फिर आपके पास एक स्क्रिप्ट है जो आपके एप्लिकेशन को संस्करण x से संस्करण y में ले जाती है।
एक चीज जो मैं अब कभी नहीं करता (और मैं इसे तब तक करता था जब तक कि मैं बेहतर नहीं सीखता) मेरे विकास के माहौल में डेटाबेस ऑब्जेक्ट बनाने के लिए किसी भी जीयूआई उपकरण का उपयोग करता है। पहले दिन से डीडीएल स्क्रिप्ट लिखें - परीक्षण, उत्पादन आदि के लिए कोड को बढ़ावा देने के लिए आपको उनकी आवश्यकता होगी। मैंने बहुत से लोगों को देखा है जो सभी वस्तुओं को बनाने के लिए जीयूआई का उपयोग करते हैं और रिलीज के समय आते हैं, उत्पादन करने का प्रयास करने के लिए एक स्क्रैबल है स्कीमा को सही ढंग से बनाने/माइग्रेट करने के लिए स्क्रिप्ट जो अक्सर परीक्षण नहीं की जाती हैं और विफल हो जाती हैं!
यह कैसे करना है, इसके लिए हर किसी की अपनी प्राथमिकता होगी, लेकिन मैंने देखा है कि पिछले कुछ वर्षों में मैंने बहुत कुछ बुरी तरह से किया है, जिसने ऊपर मेरी राय बनाई है।