2012-07-23 18 views
10

निरंतर वितरण में उत्पादन पर संबंधपरक डेटाबेस (और स्कीमा) माइग्रेशन पैटर्न क्या हैं?निरंतर वितरण में उत्पादन डेटा माइग्रेशन पैटर्न

कई पारंपरिक विकास में डीबीए वर्तमान रिलीज चक्र में बनाई गई कई छोटी लिपियों में से एक बड़ी माइग्रेशन स्क्रिप्ट की व्यवस्था करता है। लेकिन सीडी में डेवलपर अब उत्पादन में बदलाव को धक्का देना चाहता है, अन्य स्क्रिप्ट के साथ उन्हें संकलित करने की प्रतीक्षा न करें।

मुझे रेल-माइग्रेशन पर पता है लेकिन मेरे लिए कच्चे एसक्यूएल स्क्रिप्ट का उपयोग करना अधिक उचित लगता है।

मैंने माइग्रेशन प्रबंधित करने के लिए flyway जैसे टूल भी देखे हैं लेकिन मैंने उत्पादन में उनका उपयोग करके कई लोगों को नहीं पढ़ा है। यही कारण है कि मुझे आश्चर्य है कि यहां सामान्य प्रथाएं क्या हैं।

उत्तर

9

फ्लाईवे निरंतर वितरण/तैनाती के लिए बहुत अच्छा काम करता है। कई ग्राहक इसे उत्पादन सहित सभी वातावरणों में उपयोग करते हैं।

चरण 1

पुरानी आवेदन कोड वर्ष डीबी के साथ मिलकर काम करता है:

वातावरण भर में डीबी माइग्रेशन व्यापक के लिए सबसे महत्वपूर्ण बात यह है कि एक 3 चरणों वाली प्रक्रिया है।

चरण 2

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

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

इस चरण में नौकरी करने के लिए संगतता दृश्य और ट्रिगर्स शामिल हो सकते हैं।

चरण 3

परिवर्तन के बाद काम करने के लिए साबित हो गया है, आवेदन कोड के अगले संस्करण आवश्यक डीबी माइग्रेशन के साथ एक साथ तैनात हो जाता है त्यागने के लिए किसी भी शेष पुराने और संगतता (चरण 1 से) (चरण 2 से) संरचनाएं।

+0

मुझे एहसास है कि यह एक पुरानी पोस्ट है, लेकिन मुझे आश्चर्य है कि क्या आपके पास इस बारे में कोई विचार है कि इसे कैसे पैक किया जाना चाहिए।जैसा कि मैंने इसे देखा है आप 4 अलग-अलग पैकेजों के साथ समाप्त हो जाएंगे: 1: नया कोड, नए डीबी (लेकिन पुराना भी) के साथ काम करने के लिए प्रावधान, 2: डीबी माइग्रेशन, 3: नया कोड, पुराना समर्थन करने के लिए तय नहीं है डीबी अक्सर ये सभी परिवर्तन किए जाते हैं, और स्रोत नियंत्रण के लिए प्रतिबद्ध होते हैं, जिससे निर्माण शुरू हो जाता है .. क्या आप किसी भी उपकरण के बारे में जानते हैं जो तैनाती पाइपलाइन को भेजने के लिए उचित पैकेज में विभाजित करने में मदद कर सकता है? –

+0

"नया एप्लिकेशन कोड तैनात किया गया है, और स्टार्टअप पर डीबी माइग्रेट करता है।" मेरी समझ यह है कि तैनाती स्क्रिप्ट के हिस्से के रूप में चलने के लिए प्रवासन के लिए भी उचित लगता है। क्या आप इसके साथ कोई कठिनाई देखते हैं? –

1

एकल (कच्चे) एसक्यूएल फ़ाइलों के रूप में अपने डेटाबेस में परिवर्तन लागू करें, फिर माइग्रेशन स्क्रिप्ट बनाने के लिए sqlpatch का उपयोग करें।

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

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

+1

बीटीडब्ल्यू, मैं एसक्लपैच का निर्माता हूं – Elmer

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