2010-07-29 9 views
7

का उपयोग कर संस्करण नियंत्रण के तहत अपना डेटाबेस प्राप्त करें मेरे पूरे डेटाबेस को संस्करणित करने के लिए सबसे अच्छा तरीका क्या होगा?एक डीवीसीएस [Mercurial]

प्रत्येक डेटाबेस ऑब्जेक्ट (तालिका, दृश्य, procsure ..) के लिए एक फ़ाइल बनाना या सभी डीडीएल स्क्रिप्ट के लिए एक फ़ाइल रखना और कोई नया परिवर्तन अलग फ़ाइल में रखा जाएगा?

डेटाबेस प्रबंधक उपकरण में किए गए परिवर्तनों को संभालने के बारे में क्या?

मैं किसी भी प्रकार के आरडीबीएमएस के लिए सामान्य समाधान करना चाहता हूं।

क्या कोई अन्य विकल्प हैं?

+0

Microsoft SQL सर्वर स्रोत सुरक्षित संस्करण नियंत्रण पर रखा जा सकता है, मैं अन्य इसी तरह के समाधान के बारे में सूचित नहीं कर रहा हूँ। मैं वास्तव में कुछ अन्य समाधान ढूंढना चाहता हूं जो अन्य डेटाबेस के लिए काम करता है। –

+0

@ फ्लैक्रॉन बाइटकी: ** स्रोत सुरक्षित ** ?! यदि [एरिक सिंक] (http://www.sourcegear.com/vault/) इसे देखता है, तो वह व्यक्तिगत रूप से आपके घर जाएंगे और आपको बिक्री चालान के साथ आधा मौत का पेपर कट जाएगा। –

उत्तर

1

यदि आपको जेनेरिक समाधान की आवश्यकता है - स्क्रिप्ट में सभी चीजें डालें (सरल टेक्स्ट फाइलें) और संस्करण नियंत्रण प्रणाली के तहत डालें (किसी भी वीसीएस का उपयोग किया जा सकता है)।

स्क्रिप्ट में समान डेटाबेस ऑब्जेक्ट्स को समूहीकृत करना आपकी आवश्यकता पर निर्भर करेगा। उदाहरण के लिए

तो तुम हो सकता है:

स्टोर तालिका/अनुक्रमित/एक या कई स्क्रिप्ट व्यक्तिगत लिपि में प्रत्येक प्रक्रिया की दुकान या में एक पटकथा में छोटे प्रक्रियाओं गठबंधन।

हालांकि इस दृष्टिकोण के साथ एक महत्वपूर्ण बात याद रखने की आवश्यकता है: यदि आपने डेटाबेस में तालिका/दृश्य/प्रक्रिया को सीधे बदल दिया है और स्क्रिप्ट बदलने के बाद डेटाबेस में डीबी ऑब्जेक्ट्स को संकलित/पुन: बना/संकलित नहीं किया है तो स्क्रिप्ट को न भूलें।

3

मैं सामान्य और एक बड़ा मर्क्युरियल बूस्टर में एक विशाल VCS प्रशंसक हूँ पर एक नज़र डालें, लेकिन मैं वास्तव में लगता है कि आप नीचे गलत पथ जा रहे हैं।

वीसीएस केवल पुनरावृत्त परिवर्तनों के बारे में नहीं हैं, "क्या", वे "कौन", "कब" और "क्यों" का जवाब देने के बारे में हैं। डेटाबेस के लिए वे उत्तर वीसीएस को प्रदान करने के लिए बहुत कम दिलचस्प या कठिन हैं। यदि आप रात के निर्यात कर रहे हैं और "कौन" हमेशा "क्रॉन" होगा और "क्यों" हमेशा "आधी रात" होगा।

दूसरी बात यह है कि आधुनिक वीसीएस वास्तव में अच्छी तरह से काम करता है जिससे आप कई शाखाओं में परिवर्तनों को मर्ज करने में मदद कर सकते हैं। यह डेटाबेस दुनिया में कम लागू है। बहुत ही कम आप कहते हैं, "मुझे यह टेबल संरचना चाहिए, लेकिन यह डेटा", और यदि आप टेक्स्ट/diff विलय करते हैं तो आपको बहुत मदद नहीं मिल रही है।

जो चीज "क्या" और "कब" बहुत अच्छी तरह से एक वृद्धिशील बैकअप सिस्टम है, और यह शायद बेहतर फिट है।

काम पर हम टिवोली का उपयोग करते हैं और घर पर मैं rdiff-backup और डुप्लिकेट का उपयोग करता हूं, लेकिन बहुत सारे विकल्प हैं।

मुझे लगता है कि अंगूठे का मेरा सामान्य नियम है

निश्चित रूप से

आप "अगर यह एक मानव तो यह स्रोत नियंत्रण में है, और अगर वह जेनरेट हुआ था/निर्यात तो यह वृद्धिशील बैकअप में चला जाता है द्वारा हाथ से टाइप किया गया था" यह काम कर सकता है, लेकिन मुझे नहीं लगता कि यह आपको अधिक पारंपरिक बैकअप समाधानों पर अधिक खरीद देगा।

+0

मैं असहमत हूं। हम अपने डेटाबेस पर कई देवताओं और बढ़ते हुए काम करते हैं, और चीजें गड़बड़ हो जाती हैं क्योंकि हम आसानी से हमारे कोड में बदलावों को ट्रैक नहीं कर पा रहे हैं। डेटा समस्या नहीं है, जिसे नियमित बैकअप के साथ संभाला जा सकता है। यह वह कोड है जिसे संरचना की आवश्यकता है। – thomaspaulb

1

SQL Source Control वर्तमान में एसवीएन और टीएफएस का समर्थन करता है, लेकिन Mercurial अनुरोध तेजी से बढ़ रहे हैं और हम जल्द ही इसके लिए एक कहानी होने की उम्मीद कर रहे हैं।

हम UserVoice का उपयोग को मापने के लिए मांग तो तदनुसार वोट करें अगर आप इस में रुचि रखते हैं: http://redgate.uservoice.com/forums/39019-sql-source-control

+1

अच्छी खबर - एसक्यूएल स्रोत नियंत्रण अब Mercurial (और उपयुक्त कमांड लाइन के साथ किसी भी स्रोत नियंत्रण प्रणाली) के समर्थन के साथ जारी किया गया है। –