मैं अपने डेटाबेस को अद्यतन करने के लिए Liquibase 3.3.5 का उपयोग कर रहा हूं। संदर्भ होने के कारण चेंजलॉग के विशिष्ट हिस्सों को निष्पादित करने का एक अच्छा तरीका है। लेकिन मुझे समझ में नहीं आ रहा है, क्यों सभी परिवर्तनों को निष्पादित किया जाता है, जब अद्यतन पर कोई संदर्भ प्रदान नहीं किया जाता है।अद्यतन पर निर्दिष्ट किए जाने पर सभी संदर्भ निष्पादित क्यों किए जाते हैं?
- changeset एक:: निम्नलिखित उदाहरण पर विचार संदर्भ = परीक्षण
- changeset बी: कोई संदर्भ
- changeset सी: संदर्भ = prod
तो
- साथ अद्यतन क्रियान्वित संदर्भ = परीक्षण, परिवर्तन ए + बी निष्पादित करेगा।
- संदर्भ = प्रोड के साथ अद्यतन निष्पादित, परिवर्तन बी + सी निष्पादित करेगा।
- कोई संदर्भ के साथ अद्यतन निष्पादित, परिवर्तन ए + बी + सी निष्पादित करेगा।
मेरे लिए, यह बिल्कुल समझ में नहीं आता है :)।
मैं उम्मीद करता हूं कि केवल परिवर्तन बी को निष्पादित किया जाएगा, क्योंकि यह एक विशिष्ट संदर्भ को परिभाषित नहीं करता है।
लिक्विबेस संदर्भों में उदाहरण: http://www.liquibase.org/documentation/contexts.html ("टेस्ट डेटा के लिए संदर्भों का उपयोग करना") वे कहते हैं कि किसी को "परीक्षण" के साथ परीक्षण के लिए परिवर्तनों को चिह्नित करना चाहिए, और टेस्टडेटा लागू करने के लिए संदर्भ "परीक्षण" देने के साथ उन्हें निष्पादित करना चाहिए। ठीक है - समझ में आता है। लेकिन
"जब आपके उत्पादन डेटाबेस को माइग्रेट करने का समय आता है, तो" परीक्षण "संदर्भ शामिल न करें, और आपका परीक्षण डेटा शामिल नहीं किया जाएगा। "
तो, अगर मैं निर्दिष्ट नहीं होता" परीक्षण परीक्षण "changesets रूप में अच्छी तरह से मैं बिल्कुल भी एक संदर्भ निर्दिष्ट नहीं किया है" जब उत्पादन अद्यतन को क्रियान्वित करने के संदर्भ में, यह पर अमल होगा ",।
फिर से, मैं उम्मीद होती है कि अद्यतन निष्पादन पर परीक्षण बाहर छोड़ रहा है, केवल नियमित changesets बिना परीक्षण changesets प्रदर्शन करेंगे।
या मैं यहाँ कुछ याद कर रहा हूँ :)?
ठीक है, स्पष्टीकरण के लिए धन्यवाद :)! बदलना जो पीछे की संगतता को तोड़ देगा, यह निश्चित रूप से है। लेकिन एक नए उपयोगकर्ता के रूप में Liquibase, जो मुझे "प्राकृतिक" महसूस नहीं किया, इसलिए सवाल है। यदि आप हमेशा एक संदर्भ का उपयोग करते हैं, तो ऐसा लगता है कि ऐसा करना ठीक है। क्या उस व्यवहार को बदलने की कोई योजना है? – javg
जैसा कि आपने देखा है, इसे बदलना पीछे की संगतता को तोड़ देगा, इसलिए इसे बदलने की संभावना बहुत कम है। दस्तावेज़ीकरण में सुधार करना फायदेमंद होगा। यदि आप रुचि रखते हैं, तो दस्तावेज गिटहब में है, और टीम पुल अनुरोधों का स्वागत करती है! https://github.com/liquibase/liquibase.github.com ps - अगर मेरा उत्तर सहायक था, तो कृपया इसे सही उत्तर के रूप में स्वीकार करें। – SteveDonie