2016-05-23 11 views
66

मुझे अपने स्प्रिंग बूट/नोड.जेएस आधारित अनुप्रयोगों के लिए डेटाबेस माइग्रेशन टूल/फ्रेमवर्क का उपयोग करने की आवश्यकता है। लिक्विबेस और फ्लाईवे की विशेषताओं की खोज करने के बाद, मैं थोड़ा उलझन में हूं कि किस पर उपयोग करना है। रोलबैक समर्थन, डेटाबेस-तटस्थ परिवर्तन आदि, जबकि मुझे तरल पदार्थ की ओर आकर्षित करता है, दूसरी तरफ सादगी (एसक्यूएल आधारित), बेहतर प्रक्रिया, और पीएल/एसक्यूएल समर्थन मुझे फ्लाईवे की तरफ खींच रहा है।लिक्विबेस बनाम फ्लाईवे जिसका उपयोग करने के लिए?

इस पर निर्णय लेने से पहले यहां अधिक ठोस डेटा बिंदुओं की आवश्यकता है।

+3

आपने एक प्रश्न बनाया है कि केवल आप ही अपने पर्यावरण और परियोजना योजनाओं के आधार पर उत्तर दे सकते हैं। लिक्विबेस - रोलबैक समर्थन, डेटाबेस-तटस्थ परिवर्तन आदि जबकि फ्लाईवे - सादगी (एसक्यूएल आधारित), बेहतर प्रक्रिया और पीएल/एसक्यूएल समर्थन। –

+0

रोजर क्या आपके मन में कुछ और है? उनमें से किसी एक द्वारा प्रदान की जाने वाली किसी भी महत्वपूर्ण विशेषता की तरह, लेकिन दूसरे द्वारा नहीं? – Tanmoy

+0

वे अलग-अलग टूल्स हैं और इसलिए आपको अपने विकास के दौरान अपनी विशेषताओं को मैप करना होगा। क्रैल्वरो का जवाब मतभेदों की सूची का विस्तार करता है, लेकिन आपने जो समाधान हासिल करना है, उसे आपने समाधान के साथ हासिल नहीं किया है, इसलिए किसी के लिए प्रत्यक्ष उत्तर देने के लिए यह कठिन है। –

उत्तर

97

मैंने पहले से ही दोनों टूल्स का उपयोग किया है और इसलिए, ये मुख्य अंतर हैं।

Flyway

  1. आसान कॉन्फ़िगर करने के लिए - तुम सिर्फ एक फ़ोल्डर स्थान की जरूरत है और एक नाम वाक्य रचना रखने V1__file.sql, ...
  2. SQL- आधारित है, लेकिन आप सही लिखने की ज़रूरत आपके विशिष्ट डेटाबेस इंजन का सिंटैक्स (माइस्क्ल, डीबी 2, ...)
  3. जावा आधारित है इसलिए स्वच्छ करने, निष्पादित करने आदि के लिए कस्टम कॉन्फ़िगरेशन जोड़ना आसान है।

Liquibase

  1. सभी निष्पादित changesets का ट्रैक रखने के लिए एक मुख्य फ़ाइल की आवश्यकता है "चैंज"।
  2. एक्सएमएल आधारित है, इसलिए आपको SQL कोड बनाने के लिए विशिष्ट तरल पदार्थ टैग का उपयोग करने की आवश्यकता है। यह आपके कोड को एक अलग डीबी इंजन में माइग्रेट करने के लिए सही है: आपको कुछ भी बदलने की आवश्यकता नहीं होगी, और केवल डीबी ड्राइवर तरल पदार्थ बताएगा कि XML टैग से सही SQL वाक्यविन्यास में अनुवाद कैसे करें।
  3. यदि आप तरल पदार्थ से एसक्यूएल टैग का उपयोग करते हैं, तो आप बिंदु 2 का लाभ नहीं लेंगे, इसलिए इसके बजाय फ्लाईवे का उपयोग करना बेहतर होगा।
  4. लिक्विबेस एक मौजूदा डीबी को स्वचालित रूप से सभी आवश्यक एक्सएमएल फाइलों में माइग्रेट करने के लिए एक जार प्रदान करता है, इसलिए आपको उन पर मैन्युअल रूप से काम करने की आवश्यकता नहीं है। बहुत उपयोगी।

अब यह है कि क्या आप भविष्य आदि

+7

लिक्विबेस के नए संस्करण एसक्यूएल टिप्पणियों के रूप में मेटाडेटा के साथ सरल एसक्यूएल परिवर्तनों का समर्थन करते हैं –

+2

मुझे लगता है कि यह जोड़ना उचित है कि लिक्विबेस कई डीडीएल परिवर्तनों के लिए स्वचालित रोलबैक आदेश उत्पन्न कर सकता है। – Kafkaesque

+0

फ्लाईवे जावा आधारित माइग्रेशन का भी समर्थन करता है https://flywaydb.org/getstarted/java –

24

मैं Liquibase इस्तेमाल किया में एक अलग डीबी इंजन पर जाने की आवश्यकता तय करने के लिए आप अपनी परियोजना के लिए क्या जरूरत है आप पर निर्भर है,। उद्यम स्तर के आवेदन के लिए (जहां आप विभिन्न टीमों का सहयोग करते हैं) लिक्विबेस आपके लिए बहुत उपयुक्त है। मुझे रोलबैक सुविधा पसंद है।

छोटे अनुप्रयोगों के लिए फ्लाईवे सादगी के कारण अच्छा होगा।

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