2009-03-31 24 views
5

मैं SQL Server Compact 3.5 डेटाबेस पर स्कीमा के प्रबंधन के विचार को लागू करने के लिए एक अच्छे समाधान के लिए कुछ समय खोज रहा हूं।एसक्यूएल सर्वर कॉम्पैक्ट - स्कीमा प्रबंधन

मुझे SQL Server Express, SQL सर्वर मानक, SQL सर्वर एंटरप्राइज़ पर स्कीमा के प्रबंधन के कई तरीकों के बारे में पता है, लेकिन कॉम्पैक्ट संस्करण समान पद्धति का उपयोग करने के लिए आवश्यक आवश्यक टूल का समर्थन नहीं करता है।

कोई सुझाव/टिप्स?


मुझे यह विस्तार करने के लिए विस्तार करना चाहिए कि यह 100+ ग्राहकों के लिए रैपरवेयर सॉफ़्टवेयर के साथ है। जैसे-जैसे सिस्टम बदलता है, मुझे क्लाइंट को नई बाइनरी के साथ अद्यतन स्क्रिप्ट प्रकाशित करने की आवश्यकता होती है। मैं एक सभ्य विधि की तलाश कर रहा था जिसके द्वारा क्लाइंट को स्क्रिप्ट फ़ाइल को हाथ दिए बिना इसे प्रकाशित करना और "एसएसएमएसई में इसे चलाएं" कहें। अधिकांश ग्राहक ऐसे जानवर को करने में सक्षम नहीं हैं।

मेरे एक दोस्त ने मेरे कार्य के SQL सर्वर टुकड़े को संभालने के तरीके पर आंशिक लिपि का खुलासा किया, लेकिन कॉम्पैक्ट संस्करण पर कभी काम नहीं किया। ऐसा लगता है कि मैं इसके लिए अपने आप पर रहूंगा।

मुझे लगता है कि मैंने ऐसा करने का फैसला किया है, और इसे पूरा करने के लिए "गीक सप्ताह" की आवश्यकता होगी, WiX और NAnt काम करता है जैसे कि किसी प्रकार का टूल लिखना है, ताकि मैं बस लिख सकूं काम को संभालने के लिए एक अति उत्साही XML दस्तावेज़।

अगर मुझे लगता है कि यह सार्थक है, तो मैं इसे कोडप्लेक्स और/या The Code Project पर प्रकाशित करूंगा क्योंकि मैंने दोनों साइटों को अतीत में किए गए कार्यों के लिए अवधारणाओं की बेहतर समझ हासिल करने के लिए थोड़ा सा उपयोग किया है, और मैं लगता है कि थोड़ा सा वापस देने के लिए शायद सार्थक है।


संपादित करें पर 2010/05/03:

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

उत्तर

0

कुछ यादृच्छिक विचार (यकीन नहीं मैं पूरी तरह से हालांकि जवाब कर सकते हैं)

  1. Microsoft Sync Framework एक विकल्प है। शुरुआती पहली बार (जो ठीक काम करने लगता है) के बाद इसे तैनात करने के बाद मुझे क्या करना चाहिए, इसकी पूरी तरह से सराहना करने का मौका नहीं मिला है। वहाँ के लिए एक MSDN साइट है यह here

  2. आप, एसक्यूएल प्रबंधन स्टूडियो की तरह कुछ के माध्यम से एक मोबाइल डिवाइस पर आलेख निष्पादित कर सकते हैं, लेकिन नहीं तो सिद्धांत रूप में आप का प्रबंधन कर सकता/टी SQL स्क्रिप्ट बनाए रखेंगे, लेकिन नीचे की ओर है कि टी है -SQL घुमावदार किया जाएगा (सीई के समर्थित बयान करने के लिए) और मैं एक तरह से निष्पादन "को स्वचालित करने के लिए" पता नहीं है - लेकिन सिंक फ्रेमवर्क कुछ जवाब पैदा हो सकती हैं ..

+1

सिंक फ्रेमवर्क का उपयोग करना ... जो SQL सर्वर की पूर्ण-प्रतिलिपि प्रतिलिपि और डेटा की एक उपग्रह प्रतिलिपि के बीच डेटा को स्थानांतरित करना है। मेरा मुद्दा यह था कि मोबाइल डेवलपमेंट हैंडलिंग डेटाबेस विकास को उनके सॉफ़्टवेयर के रूप में कैसे बदलते हैं? –

+0

आप AFAIK भी इसके साथ स्कीमा परिवर्तनों को संभाल सकते हैं – RobS

+0

आप "कर सकते हैं", लेकिन यह Fx काम करता है जिस तरह से यह एक बहुत गन्दा प्रस्ताव है। वास्तव में स्कीमा परिवर्तन करने के लिए, आप जो कर रहे हैं उस पर निर्भर करते हुए, आपको नई स्कीमा के साथ तालिका को फिर से बनाना होगा, पुराने टेबल से डेटा को नए में ले जाना होगा, मौजूदा हटाएं और नया नाम बदलें। :( –

0

तो अपने प्रमुख मानदंडों में से एक रहा है एक छोटी पाइप पर कुशलतापूर्वक काम करने के लिए, आपके पास एकमात्र असली विकल्प है जो डीबी स्कीमा संस्करण (शायद किसी भी तरह से आपके सीएमएस में चेक की गई स्क्रिप्ट से जुड़ा हुआ है) को स्टोर करना है और जब अपडेट की आवश्यकता होती है, तो परिवर्तन स्क्रिप्ट भेज दी जाती है तार और क्रम में लागू किया।आप संभवतः इन डीक्रिप्टों में लॉग इन रखना चाहते हैं, साथ ही इन स्क्रिप्ट्स को लागू किया जा रहा है ताकि आप डिस्कनेक्ट, रीबूट और अन्य संभावित रूप से खराब समस्याएं पूरी तरह से संभाल सकें।

-2

क्या SQL सर्वर प्रबंधन स्टूडियो आपके लिए कोई उपयोग है?
http://technet.microsoft.com/en-us/library/ms172933.aspx

+0

डैमियन .. मुझे नहीं लगता कि आपने पोस्ट पढ़ लिया है ... और शायद मुझे बनाने की ज़रूरत है यह स्पष्ट ... मुझे 100+ ग्राहकों को अपडेट स्क्रिप्ट प्रकाशित करने की आवश्यकता है ... मुझे एक तरीका चाहिए कि एप्लिकेशन मेरे लिए अपडेट संभाल सके। मैंने वास्तव में एक्सएमएल का उपयोग करके अपनी खुद की विधि बनाने का फैसला किया है, ताकि यह एनएएनटी और वाईएक्स जैसे उपकरणों में आपके जैसा कुछ भी कर सके। यह सिर्फ बेकार है कि किसी ने कभी यह नहीं किया है ... कि मैं सिर्फ एक प्रतिलिपि नहीं कर सकता, मेरे उपयोग के लिए संपादित नहीं कर सकता, और इसके साथ किया जा सकता हूं। –

+0

@RichardB मेरा उत्तर जोड़ा गया था * इससे पहले कि आपने अपने प्रश्न को संशोधित करने के लिए संशोधित किया है कि आप 100+ मशीनों पर ऐसा करने की आवश्यकता है, इसलिए हाँ, मैंने * पोस्ट पढ़ा है। मैं आम तौर पर इस तरह की टिप्पणी पर वापस नहीं आऊंगा लेकिन ऐसा लगता है कि मुझे परिणामस्वरूप कुछ नीचे वोट मिले हैं, जो कम से कम कहने के लिए परेशान हैं। –

+0

माफ़ी। मुझे वही चीज़ मिलती है, और इसे महसूस नहीं किया होगा। क्या आप किसी भी तरह से जानते हैं कि मैं ऊपर टिप्पणी को शुद्ध कर सकता हूं ताकि आप जला नहीं जाए? मुझे लगता है कि एक बार या दो बार खुद। –

2

मैं वर्तमान में Migrator.Net देख रहा हूं। यह आपको माइग्रेशन नामक आपके डेटाबेस में परिवर्तन लिखने की अनुमति देता है, सीधे सी # में।
इन माइग्रेशन में जटिल डेटा अपडेट कोड/ड्रॉप, कॉलम संशोधनों, जटिल डेटा अपडेट कोड से सबकुछ शामिल हो सकता है।

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

Assembly asm = Assembly.Load("LocalModels.migration"); 
Migrator m = new Migrator("SqlServerCe", "Data Source=LocalModels.sdf", asm, false); 
m.MigrateToLastVersion(); 

मैं कॉम्पैक्ट समर्थन (यह मान लिया गया है डिफ़ॉल्ट स्कीमा dbo है) के साथ एक जोड़ी छोटे मुद्दों कर रहा हूँ: इस अद्यतन को चलाने के लिए कोड के रूप में सरल रूप में है। लेकिन मुझे नहीं लगता कि उन्हें ठीक करना मुश्किल होगा।

+0

यह सब कुछ बहुत अच्छा है, क्योंकि यह एक डेटाबेस स्वतंत्र समाधान दिखता है। मुझे वास्तव में उस पर ध्यान देने की आवश्यकता हो सकती है। –

+0

क्या आपके पास इस संबंध में कोई अपडेट है? –

+0

मैं थोड़ी देर के लिए Migrator.Net का उपयोग कर रहा हूं। परियोजना छोड़ दी गई है, लेकिन यह मेरे लिए ठीक काम करता है। मैंने कुछ बदलाव किए हैं, उनमें से अधिकांश परियोजना विशिष्ट हैं। कॉम्पैक्ट के साथ बग को ठीक करना आसान हो गया, हालांकि तब से मैं SQLite में माइग्रेट कर चुका हूं। अगर मैं किसी के लिए उपयोगी होगा तो मैं अपने अपडेट github पर पोस्ट कर सकता हूं। – oillio

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