63

संस्करण डेटाबेस डेटाबेस को नियंत्रित करने का सबसे अच्छा तरीका क्या है? मैं विजुअल स्टूडियो 2005/2008 और एसक्यूएल सर्वर 2005 का उपयोग कर रहा हूं। मैं एक समाधान पसंद करूंगा जिसका उपयोग एसवीएन के साथ किया जा सकता है।संस्करण को मेरे SQL सर्वर संग्रहीत प्रक्रियाओं को नियंत्रित करने का सबसे अच्छा तरीका क्या है?

+0

इस मुफ्त टूल को आजमाएं: [http://servantt.com] (http://servantt.com/?so) - यह आपको अपनी ऑब्जेक्ट्स को रिवर्स करने, स्क्रिप्ट में सहेजने, स्क्रिप्ट्स में डेटाबेस की तुलना करने, तुलना के लिए WinMerge लॉन्च करें, स्क्रिप्ट अपडेट करें या डेटाबेस में परिवर्तन लागू करें। – drizin

+0

इसी तरह का सवाल http://stackoverflow.com/questions/115369/do-you-use-source-control-for-your-database-items/328307#328307 –

उत्तर

0

हम सादे टेक्स्ट में डंप करते हैं और उन्हें हमारे वीसीएस में रखते हैं।

आप कुछ ऐसा करने के लिए बैकअप-और-प्रतिबद्ध स्क्रिप्ट करने में सक्षम होंगे।

33

अपने अन्य कोड के समान, अपने एप्लिकेशन समाधान में "डेटाबेस प्रोजेक्ट" जोड़ें और वहां SQL डेटाबेस फ़ाइलों को बनाने के लिए उपयोग की जाने वाली एसक्यूएल फाइलें रखें। जैसा कि आप एप्लिकेशन के लिए करते हैं, उन कोड फ़ाइलों के लिए समान संस्करण नियंत्रण का उपयोग करें।

+0

यदि आप स्रोत फ़ाइलों पर अपनी डीबी ऑब्जेक्ट निकालने के लिए एसएसएमएस का उपयोग करते हैं, सावधान रहें कि एन्कोडिंग का उपयोग किया जाता है। यह संभव है कि बिना किसी जानकारी के यूनिकोड का उपयोग किया जा सके - कम से कम यही मैंने अनुभव किया है। जब आप एक टेक्स्ट एडिटर के माध्यम से त्वरित परिवर्तन करना चाहते हैं तो यह परेशान हो सकता है और आपको अस्पष्टता मिलती है। – Steve

+14

@ स्टेव, आपका संपादक कचरा है अगर यह यूनिकोड को संभाल नहीं सकता है। – CMircea

+0

@Steve - मैं कल्पना नहीं कर सकता कि आप आजकल यूनिकोड के अलावा कुछ भी क्यों उपयोग करना चाहते हैं। यह नवंबर 200 9 है, 1 9 8 9 नहीं! –

15

RedGate द्वारा प्रदान किए गए टूल्स को देखें। वे विशेष रूप से एसपी के साथ SQL सर्वर ऑब्जेक्ट्स के लिए बैकअप/पुनर्स्थापना/तुलना मामलों के साथ सौदा करते हैं। वैकल्पिक रूप से मुझे यकीन नहीं है लेकिन मुझे लगता है कि विजुअल स्टूडियो आपको एसपी को एक भंडार में जांचने की अनुमति देता है। हैवेन्ट ने खुद को कोशिश की। लेकिन मैं रेडगेट टूल्स की सिफारिश कर सकता हूं। उन्होंने मुझे मुसीबत से एक टन

+5

मैं SQL स्रोत नियंत्रण के लिए उत्पाद प्रबंधक हूं, जो प्रारंभिक पहुंच में प्रयास करने के लिए उपलब्ध है। यह एसवीएन के साथ काम करता है और एसएसएमएस के साथ एकीकृत करता है। Http://www.red-gate.com/Products/SQL_Source_Control/index.htm पर साइन अप करें। टिप्पणियाँ स्वागत है! –

+1

एसक्यूएल स्रोत नियंत्रण 1.0 http://www.red-gate.com/products/SQL_Source_Control/index.htm अब भेज दिया गया है और मूल्यांकन/खरीद के लिए उपलब्ध है। –

+0

रेडगेट का एक नि: शुल्क विकल्प यह निःशुल्क एप्लिकेशन है: http://servantt.com/?so इसका उपयोग करना बहुत आसान है, लेकिन यह काम बहुत अच्छा है। – drizin

1

मैं एक पहले से पैक समाधान के बारे में पता नहीं है, खेद ...

बचाया है ... लेकिन नहीं तुम सिर्फ एक छोटे से स्क्रिप्ट डेटाबेस से जुड़ा हो सकता है और सभी संग्रहीत प्रक्रियाओं को पाठ फ़ाइलों के रूप में डिस्क में सहेजा गया? फिर स्क्रिप्ट 'svn add' पर सिस्टम कॉल करके सभी टेक्स्ट फ़ाइलों को एसवीएन रिपॉजिटरी में जोड़ देगा।

तो आप शायद एक और स्क्रिप्ट डीबी से कनेक्ट करना चाहते हैं, सभी संग्रहीत प्रक्रियाओं को छोड़ दें और डिस्क से सभी भंडारित संग्रहित प्रक्रियाओं को लोड करें। जब भी आप "svn up" चलाते थे, तब इस स्क्रिप्ट को चलाने की आवश्यकता होगी और संग्रहित प्रक्रियाओं में नई/बदली गई थी।

मुझे यकीन नहीं है कि यह एमएस एसक्यूएल के साथ पूरा किया जा सकता है, लेकिन मुझे पूरा विश्वास है कि MySQL इसे समायोजित करेगा। यदि ऐसा करने के लिए एसवीएन एक्सटेंशन लिखना बहुत जटिल है, Capistrano चेकइन/चेकआउट स्क्रिप्ट, आईआईआरसी का समर्थन करता है।

3

हम सबवर्जन का उपयोग करते हैं और हम जो भी करते हैं, हम सबवर्सन प्रोजेक्ट के लिए निर्देशिका में एसक्यूएल कोड को सहेजते हैं और फिर जब हम पहले से मौजूद कुछ पर काम करना शुरू करते हैं तो हम रिपोजिटरी से कोड को अपडेट करते हैं और अपडेट करते हैं।

असली चाल डेवलपर्स को ऐसा करने के लिए मनाने के लिए है। हमारे डीबीए किसी भी संग्रहित प्रो (या अन्य डेटाबेस ऑब्जेक्ट) को हटाकर करते हैं जो समय-समय पर सबवर्जन में नहीं है। एक बार सामान खोना और बहुत ज्यादा कोई भी इसे फिर से नहीं करता है।

+5

कठिन प्यार सबसे अच्छा काम करता है! –

+0

आपके डीबीए इस मुफ्त एप्लिकेशन से प्यार करेंगे, जो वास्तव में वे मैन्युअल रूप से कर रहे हैं: http://servantt.com/?so – drizin

5

मैं अपने सभी टेबल/स्पोक/फ़ंक्शन स्रोत नियंत्रण के लिए एसवीएन का उपयोग करता हूं।

मुझे अपनी ज़रूरतों को पूरा करने वाली कुछ भी नहीं मिली, इसलिए मैंने utility लिखना समाप्त कर दिया ताकि मुझे एसवीएन के साथ उपयोग करने के लिए कोड को एक अच्छी निर्देशिका संरचना में डंप करने की अनुमति मिल सके।

रुचि रखने वालों के लिए, स्रोत अब svn://finsel.com/public/VS2005/GenerateSVNFilesForSQL2005 पर उपलब्ध है।

+0

हाय जोसेफ, मैंने पंजीकरण किया है और यह आपके टूल को डाउनलोड करने का प्रयास किया है क्योंकि यह बहुत अच्छा लगता है लेकिन मुझे मिलता है त्रुटि "फ़ाइल नहीं मिली" सी: \ DotNetNuke \ Portals \ 0 \ रिपोजिटरी \ InstallSVNFilesForSQL2005।3a21c4ac-399a-4006-9057-d9f409e13ce3.zip '। "आपकी साइट से? क्या कोई मौका है कि आप इसके लिए स्रोत जारी करेंगे? –

+0

जैसे ही मैं अपनी साइट का बैक अप लेता हूं, मैं अपना कोड कोड पोस्ट करूंगा सार्वजनिक एसवीएन – Josef

+0

@ जोसेफ - मैं आपके एसवीएन सर्वर तक नहीं पहुंच सकता या आपके कोड पर नहीं पहुंच सकता - क्या यह अभी भी सक्रिय है? क्या मुझे कोड मिल सकता है? – Conrad

1

बेस्ट तरीका - जो आपके लिए काम करता है।

सबसे आसान तरीका - वह जो वर्तमान में मौजूद नहीं है।

हम एक अर्द्ध मैनुअल विधि का उपयोग करें (स्रोत नियंत्रण में स्क्रिप्ट, छोटे उत्पादन सर्वर पर संग्रहित प्रक्रियाओं को तैनात करने में सक्षम लोगों के सबसेट, स्कीमा में परिवर्तन फाइलों में जाँच की अंतर्निहित में परिवर्तन में परिलक्षित होना चाहिए)।

क्या हम चाहिए करना स्रोत नियंत्रण बनाम प्लेन स्कीमा डंप diff के कुछ प्रकार लागू है ... लेकिन यह आम तौर पर 'हमारे लिए काम करता है' हालांकि यह एक वास्तव में समय के सबसे faff है।

1

मैं सहमत हूं कि यदि संभव हो, तो आपको अपने अनुप्रयोग स्रोत के साथ अपने डीबी संस्करण के लिए डेटाबेस प्रोजेक्ट का उपयोग करना चाहिए।

हालांकि, यदि आप किसी एंटरप्राइज़ परिदृश्य में हैं, तो आपको सर्वर पर परिवर्तनों को ट्रैक करने के लिए टूल का उपयोग करने और उन परिवर्तनों को संस्करणित करने पर भी विचार करना चाहिए। सिर्फ इसलिए कि डेटाबेस प्रोजेक्ट मौजूद है इसका मतलब यह नहीं है कि कुछ व्यवस्थापक या डेवलपर सर्वर पर उन sprocs को बदल नहीं सकते हैं।

0

उपयोग अपने स्कीमा डंपिंग के लिए versaplex: http://code.google.com/p/versaplex/

Versaplex Schemamatic के साथ आता है, जो डेटाबेस स्कीमा (टेबल, एसपी, इत्यादि) और डेटा भी पढ़ता है (डेटा सीएसवी के रूप में डंप किया जाता है)। मैं इसे एसवीएन और गिट के साथ उपयोग करता हूं, और यह कमाल है :) यदि आपको मदद की ज़रूरत है तो मुझे बताएं, यह एक कोशिश के लायक है! http://github.com/eduardok/versaplex

संबंधित मुद्दे

 संबंधित मुद्दे