/ / लिक्विबेस में सेट और डेटाबेस में परिवर्तन होता है

Liquibase diff परिवर्तन सेट और डेटाबेस - तरल पदार्थ

मैं विकास कर रहा हूं और एक db में बदलाव किया है। इससे पहले कि मैं प्रतिबद्ध हूं मुझे अपने परिवर्तन सेट में बदलाव जोड़ना होगा। इसलिए मैं करता हूँ liquibase --url="...;name=db_dev" diff लेकिन यह मुझे संदर्भ मापदंडों के लिए पूछता है। हालाँकि मैं url db की दूसरे db से तुलना नहीं करना चाहता। मैं लक्ष्य डीबी के साथ परिवर्तन सेट (फाइलों) की तुलना करना चाहता हूं।

क्या यह संभव है?

उत्तर:

जवाब के लिए 3 № 1

मुझे लगता है कि आप एक गैर-मानक तरीके से लिक्विबेस का उपयोग कर सकते हैं।

एक अपेक्षित उपयोग पैटर्न यह है कि आप एक लिलीबेस "परिवर्तन सेट" (XML, JSON, या लिक्विबेस संरचित एसक्यूएल में) लिखकर और फिर उपयोग करके आवश्यक स्कीमा परिवर्तन बनाते हैं। liquibase update अपने प्रत्येक डेटाबेस इंस्टेंसेस में उस परिवर्तन को तैनात करने के लिए।

एक दूसरे उपयोग पैटर्न में आपने जो भी डेटाबेस हेरफेर टूल का उपयोग किया है, और उसके बाद उपयोग करके डेटाबेस में सीधे परिवर्तन किया जाता है liquibase diffChangelog अपनी चेंजलॉग फ़ाइल में दिए गए संबंधित परिवर्तन को जोड़ने के लिए। परिवर्तन सेट करने के बाद, आपको फिर उपयोग करना होगा liquibase changelogsync लिलीबेस को आबाद करने की आज्ञा DATABASECHANGELOG डेटाबेस में सूचना के साथ नया बदलाव पहले से ही डेटाबेस पर "तैनात" किया गया है। दूसरे उपयोग के लिए आवश्यक है कि आप:

  • दो जीवित डेटाबेसों की तुलना करें (उदाहरण के लिए, आप मैन्युअल रूप से बदले गए डेटाबेस को "परीक्षण" या "स्टेजिंग" डेटाबेस की तुलना कर सकते हैं)
  • मैन्युअल परिवर्तन करने से पहले एक डेटाबेस "स्नैपशॉट" बनाएं, फिर परिवर्तन करें और फिर डेटाबेस की तुलना स्नैपशॉट से करें। यह पेज लिलीबेस ब्लॉग पर है कैसे उपयोग करने का वर्णन करता है liquibase snapshot एक स्नैपशॉट लेने के लिए कमांड, और तुलना करने के लिए "ऑफ़लाइन डेटाबेस" के रूप में उस स्नैपशॉट का उपयोग कैसे करें।

यह पृष्ठ लिलीबेस दस्तावेज में है लिक्विबेस के साथ शुरू होने पर उपयोग पैटर्न पर कुछ और विवरण हैं।