SSDT, लिलीबेस / फ्लाईवे के साथ तुलनात्मक है क्योंकि यह वही करता है जो वे करते हैं लेकिन एक अलग दृष्टिकोण लेकर। SSDT के साथ आपके पास विकास का माहौल है, इसलिए आपको परिभाषा में जाने, संदर्भ और इंटेलीजेंस के साथ-साथ एक प्रोजेक्ट को डैकैप में संकलित करने और फिर उस डीएएसीपी को एक डेटाबेस में तैनात करने की क्षमता मिलती है।
SSDT तरीका (और redgate sql तुलना तरीका) एक विलंब करने के लिए यह घोषित करना है कि आप क्या चाहते हैं यदि आप एक तालिका बदलना चाहते हैं जो इस तरह दिखती है:
create table a(id int)
एक तालिका है कि इस तरह दिखता है:
create table a(id int, another_column varchar(12))
SSDT के साथ आप बस अपनी टेबल की परिभाषा को दूसरे में बदलते हैं और SSDT को इसे अपग्रेड करने के तरीके के बारे में चिंता करने देते हैं (क्या यह एक परिवर्तन तालिका कर सकते हैं, स्तंभ जोड़ सकते हैं या स्तंभ क्रम में परिवर्तन कर सकते हैं, इसलिए आपको तालिका आदि का पुनर्निर्माण करने की आवश्यकता होगी)।
Liquibase (DbUp, ReadyRoll, मैनुअल तरीके आदि) के साथ आप इस मामले में क्या करते हैं, परिवर्तन तालिका को स्वयं लिखना होगा और यह सुनिश्चित करना होगा कि आप स्क्रिप्ट को सही क्रम में चलाते हैं, इस परिदृश्य पर विचार करें:
- रिलीज 1 - टेबल पर कॉलम हैलो बनाएं
- रिलीज़ 2 - स्तंभ का नाम बदलकर joe_blogs करें
- रिलीज 3 - हैलो के लिए कॉलम joe_blogs का नाम बदलें
- रिलीज 4 - कॉलम joe_blogs बनाएं
यदि कोई रिलीज़ छूट जाती है, तो अगले में से कोई भी जारी नहीं रह सकता है।
अपग्रेड स्क्रिप्ट्स का लाभ (लिकिबेस, डीबीयूपी, आदि):
- स्क्रिप्ट पर आपका पूरा नियंत्रण है
- डीबीए / डेवलपर्स का उपयोग इसके लिए किया जाता है
तुलना / विलय (SSDT, Redgate SQL तुलना) के लाभ:
- अपग्रेड स्क्रिप्ट लिखने की जरूरत नहीं है
- किसी भी विशिष्ट संस्करण को प्राप्त करना और उस संस्करण को मर्ज करना आसान है
उन्नयन स्क्रिप्ट की कमियां:
- क्रम में चलाया जाना चाहिए
- इंसानों पर गलतियाँ करना गलतियाँ नहीं हैं
- विशेष रूप से धीमा हो सकता है यदि आपके पास बहुत सारे बदलाव हैं
- जब तक आपकी टीम विभिन्न वातावरणों में बहुत अनुशासित डेटाबेस (देव, परीक्षण, मंचन, ठेस आदि) है तब तक अक्सर किसी भी परीक्षण को अमान्य बनाकर सिंक से बाहर हो जाते हैं
- किसी रिलीज़ को डाउनग्रेड करने का मतलब है, उन सभी लिपियों का उल्टा लिखना जो आपने पहले ही लिखी हैं
तुलना / मर्ज का उपयोग करने की कमियां:
- उपकरण 100% विश्वसनीय नहीं हैं, शायद गलत
- SSDT को एक कार्यशील परियोजना की आवश्यकता होती है, कई डेटाबेस में ऐसे कोड होते हैं जो वास्तव में संकलन या चलाते नहीं हैं (थिंक टेबल नहीं बल्कि प्रक्रियाएं आदि), मैंने इसे 8/10 डेटाबेस में देखा है जो मुझे विरासत में मिला है :)
- कई डीबीए / डेवलपर्स एसएसएमएस / नोटपैड में विकासशील को छोड़ने में संकोच करते हैं
व्यक्तिगत रूप से मुझे वास्तव में लगता है कि एसएसडीटी एक पेशेवर विकास का माहौल है और इसका मतलब है कि मैं अपग्रेड स्क्रिप्ट लिखने के बजाय उपयोगी कोड और परीक्षण लिखने पर ध्यान केंद्रित कर सकता हूं जो कि अपने आप में एक अंत का साधन मात्र हैं।
आपने राय माँगी ताकि आप वहाँ जाएँ :)
ईडी