2013-02-13 50 views
5

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

मैं इस एक (How to keep Stored Procedures and other scripts in SVN/Other repository? और Is there a SVN plugin for SQL Server Management Studio 2005 or 2008?) जैसे कुछ (अब पुराने) पदों की जाँच की है और इन उपकरणों के लिए एक सिफारिश देखा है: http://www.red-gate.com/products/sql-development/sql-source-control/ और http://www.zeusedit.com/agent/ssms/ms_ssms.html

जैसा कि मैं अक्सर डीबी-साइड प्रोग्रामिंग करने वाली परियोजनाओं के साथ काम करता हूं, यह कभी भी एक बड़ी परेशानी नहीं है (कुछ नामकरण योजना वाले फ़ोल्डर में दर्जन स्क्रिप्ट मैन्युअल रूप से प्रबंधित करने के लिए बहुत अधिक नहीं है), लेकिन मुझे अभी एक परियोजना मिली है कुछ सौ विचारों और 1000+ संग्रहीत प्रक्रियाओं के साथ जिन्हें संस्करण नियंत्रण में कभी भी शामिल नहीं किया गया है।

मेरा प्रश्न है:

क्या प्रक्रिया दूसरों को उनके एसक्यूएल सर्वर कोड के संस्करण के प्रबंधन के लिए पालन करते हैं - वहाँ है एक एक स्वीकृत, चालाक या अन्यथा स्पष्ट दृष्टिकोण मैं यहाँ याद आ रही है? मैं वर्तमान में उपर्युक्त उपकरणों में से किसी एक की खरीद की ओर झुका रहा हूं - लेकिन ऐसा करने से पहले समुदाय से सलाह की तलाश में हूं।

मुझे एहसास हुआ कि इसका परिणाम कोड समाधान के बजाए टूल की सिफारिश में हो सकता है लेकिन एसओ को पोस्ट किया गया क्योंकि मुझे लगता है कि यह पूछने के लिए उचित भीड़ है।

उत्तर

1

मैं इसमें 800+ डीबी ऑब्जेक्ट्स के साथ डेटाबेस बनाए रख रहा हूं। जैसा कि आप वर्णन करते हैं, हमने हमेशा डेटाबेस ऑब्जेक्ट्स को एक svn-watched फ़ोल्डर में स्क्रिप्ट किया है। हमारे पास इस विधि के साथ कुछ समस्याएं हैं, ज्यादातर लोग नई या संशोधित वस्तुओं को स्क्रिप्ट करने के लिए भूल जाते हैं। दिन के अंत में यह हमारी परियोजना के लिए एक बड़ी समस्या नहीं है, लेकिन आपका अलग हो सकता है।

हमने कुछ टूल्स देखा है, लेकिन वे हमेशा मानते हैं कि आप खरोंच से शुरू कर रहे हैं, और हमारे पास लगभग 10 वर्षों का इतिहास है जिसे हम संरक्षित करना चाहते हैं। अंत में हम अपने टेक्स्ट-आधारित मैनुअल समाधान में वापस बसने लगते हैं। यह सस्ता और आसान है।

एक और विकल्प जिसे आप देखना चाहते हैं वह विजुअल स्टूडियो डाटाबेस प्रोजेक्ट स्थापित कर रहा है। यह आपकी सभी वस्तुओं को स्क्रिप्ट करेगा और कुछ तैनाती विकल्प भी प्रदान करेगा। मेरी राय यह थी कि यह हमारे स्वाद के लिए थोड़ा कड़े रूप से एकीकृत होने के लिए थक गया - हमारे पास लिंक किए गए डेटाबेस के कुछ नाम हैं जिनसे यह हार नहीं जाएगी।

+0

वीएस डीबी परियोजना के साथ खेलने का प्रयास किया, लेकिन आप जिस समस्या का वर्णन करते हैं उसमें भाग गए। AgentSVN के डेमो की भी कोशिश की और जिस तरह से मैं चाहता था काम करने के लिए संघर्ष कर रहा था (संभवतः जिस तरह से मैं जिस तरह से इरादा करता हूं उसके विपरीत काम करने के लिए मजबूर करने की कोशिश करने का एक कार्य)। स्क्रिप्ट के लोडिंग और लोडिंग/संपादन से एक सही देखे गए फ़ोल्डर की कोशिश करने के साथ चिपके हुए। – Matthew

+0

मुझे यह जोड़ना चाहिए कि आपके मौजूदा भंडार को रीडगेट जैसे कुछ माइग्रेट करना संभव होना चाहिए। मैंने कुछ साल पहले अपने तकनीकी समर्थन के साथ संभावना पर चर्चा की: 1. आपके उपकरण में आपके डीबी से एक नया प्रारंभिक भंडार तैयार है 2. अपने मौजूदा रेपो को उनके के समान मिलान से मिलान करने के लिए पुन: संरचना करें 3. उनके उपकरण को स्विच करें अपने नए दिखने वाले रेपो को इंगित करने के लिए –

2

मैं आपको रेडगेट टूल की तरह कुछ के साथ जाने की सलाह दूंगा, और उसी तरह से किसी भी SQL डेटाबेस का इलाज करूँगा जिस तरह से आप अपने सी # स्रोत कोड का इलाज करेंगे; मैन्युअल रूप से ALTER कथन का ट्रैक रखने से आप सोननर या बाद में संशोधनों की संख्या बढ़ जाएंगे ... ज़ीउस संपादन टूल के लिए बात नहीं कर सकते लेकिन रेडगेट का उपयोग करने के बाद, यह "बस काम करता है" - और इसका उपयोग करने का एक अन्य लाभ इस तरह का टूल यह है कि यह आपके माइग्रेशन स्क्रिप्ट को प्रबंधित कर सकता है ताकि आप अपने विकास संस्करण पर बदलावों का एक समूह बना सकें, फिर अपने परीक्षण डेटाबेस को अद्यतन करने के लिए एक एकल अपडेट स्क्रिप्ट उत्पन्न करें, जिसमें डेटा परिवर्तन शामिल हैं जो मैन्युअल रूप से प्रबंधित करने के लिए सबसे बड़ा पिटा है ।

अन्य बातों पर विचार करना, भले ही परिवर्तनों की संख्या कम हो और आप ALTER कथनों को मैन्युअल रूप से ट्रैक करने से दूर हो जाएं, तो क्या होगा यदि कोई अन्य प्रोजेक्ट पर काम कर रहा हो; अब आपके पास खराब प्रबंधन स्क्रिप्ट के लिए एक और संभावना है ....

वैसे भी, हमें बताएं कि आप कैसे प्राप्त करते हैं और इसके साथ शुभकामनाएँ!

+0

स्क्रिप्ट को फ़ोल्डर में ठीक से संशोधित और नियंत्रित किया जाता है (यानी मैं उन्हें स्रोत फ़ाइलों और एसवीएन संशोधनों की तरह संपादित करता हूं) इसलिए अंतिम चिंता कोई समस्या नहीं है। जब मेरे पास कुछ समय होता है (और एस/डब्ल्यू बजट) मुझे लगता है कि मैं रेडगेट टूल पर फिर से जाउंगा - वास्तव में इसका इस्तेमाल करने वाले किसी व्यक्ति से सुनना अच्छा होगा। आपकी प्रतिक्रिया के लिए धन्यवाद - +1! – Matthew