जावा के लिए माइग्रेशन


85

मैं रेल और जावा दोनों पर रूबी का उपयोग करता हूं। जब मैं एक रेल परियोजना पर काम कर रहा होता हूं तो मुझे वास्तव में पलायन का आनंद मिलता है। इसलिए मैं सोच रहा हूं कि क्या जावा के लिए टूल जैसे माइग्रेशन हैं? यदि ऐसा कोई उपकरण नहीं है, तो क्या यह एक जावा प्रोजेक्ट द्वारा उपयोग किए गए डेटाबेस को नियंत्रित करने के लिए एक उपकरण के रूप में माइग्रेशन का उपयोग करना एक अच्छा विचार है?

जवाबों:


8

मैंने माइग्रेशन के समान कार्य करने के लिए हाइबरनेट्स स्कीमाउपडेट का उपयोग किया है। यह वास्तव में माइग्रेशन की तुलना में आसान है क्योंकि हर बार जब आप अपना ऐप शुरू करते हैं, तो यह डेटाबेस संरचना की जांच करता है और इसे आपके मैपिंग के साथ सिंक करता है, ताकि कोई अतिरिक्त रेक न हो: db: माइग्रेट चरण विरुद्ध। हाइबरनेट मैपिंग फ़ाइलें रेल माइग्रेशन से अधिक जटिल नहीं हैं, भले ही आपने ऐप में हाइबरनेट का उपयोग न किया हो, तो आप इसका लाभ उठा सकते हैं। नकारात्मक पक्ष यह है कि यह वापस रोलिंग के रूप में के रूप में लचीला नहीं है, नीचे पलायन, डीएमएल बयान चल रहा है। जैसा कि टिप्पणियों में बताया गया है, यह टेबल या कॉलम भी नहीं छोड़ता है। मैं हाइबरनेट प्रारंभ प्रक्रिया के भाग के रूप में मैन्युअल रूप से करने के लिए एक अलग विधि चलाता हूं।

मैं यह नहीं देखता कि आप रेल माइग्रेशन का उपयोग क्यों नहीं कर सकते हैं - जब तक आप स्टैक (रूबी, रेक, रेल्स) को स्थापित करने में कोई आपत्ति नहीं करते हैं, आपको अपने ऐप को नहीं छूना होगा।


22
यह इसे 100% सिंक नहीं करता है। यह कॉलम में बदलाव नहीं करता है, कॉलम या टेबल को हटाएं, FKs को हटा दें आदि
cherouvim

88

के बीच एक सुविधा की तुलना के लिए

  • हवाई रास्ता
  • Liquibase
  • सी 5-db-माइग्रेशन
  • dbdeploy
  • mybatis
  • MIGRATEdb
  • migrate4j
  • dbmaintain
  • AutoPatch

पर एक नजर है http://flywaydb.org

यह आपके और किसी और के लिए नौकरी के लिए सही टूल का चयन करने के लिए एक अच्छी शुरुआत होनी चाहिए


2
अरे, मुझे फ्लाईवे की जानकारी नहीं थी। यह काफी दिलचस्प लग रहा है और मैं इसे करीब से देखूंगा। फ्लाईवे का उल्लेख करने के लिए धन्यवाद!
पास्कल थिवेंट

@ पास्कल थिवेंट आपकी टिप्पणी के लिए धन्यवाद! यदि आप इसका मूल्यांकन करते हैं, तो मुझे आपकी राय / आलोचना / इसके बारे में सुझाव सुनने में खुशी होगी, या तो यहाँ या फ्लाईवे के मुद्दे ट्रैकर में :-) मैं तुलना मैट्रिक्स में DbMaintain को जोड़कर देखूंगा क्योंकि यह एक महान जैसा दिखता है प्रतियोगी ...
एक्सल फोंटेन

मैं निश्चित रूप से करूँगा। और तुलना करने के लिए DbMaintain को जोड़ने के लिए धन्यवाद, इस तरह के मैट्रिक्स का होना बहुत अच्छा है।
पास्कल थिवेंट

3
इसे पोस्ट करने के लिए धन्यवाद। मैंने आज ही फ्लाईवे का उपयोग शुरू किया। मैंने पहले भी शराबखोरी का इस्तेमाल किया है और एक परियोजना में उन्होंने अपना समाधान निकाला है। फ्लाईवे वही है जिसकी मैं उम्मीद कर रहा था कि यह शराबबंदी होगी। सरल, कोई xml, और मैं जावा में अधिक जटिल माइग्रेशन लिख सकता हूं। उत्तम। चींटी के समर्थन के लिए तत्पर हैं।
nogridbag

1
वेबसाइट का वर्तमान संस्करण केवल फ्लाईवे, लिक्विबेस और मायबैटिस की तुलना करता है। क्या पूरी तुलना अभी भी कहीं और उपलब्ध है?
ज़ीरो 3


10

Grails एक है dbmigrate उपयोगिता है कि रेल से एक के बाद नमूनों है। चूंकि यह ग्रूवी में कार्यान्वित किया गया है, इसलिए आपको इसे अपने किसी भी जावा प्रोजेक्ट से उपयोग करने में सक्षम होना चाहिए।


6

मैं इसी सवाल पर शोध करते हुए इस पोस्ट पर भाग गया। मैं अभी तक सबसे अच्छे उपकरण या दृष्टिकोण के बारे में किसी भी निष्कर्ष पर नहीं आया हूं, लेकिन एक उपकरण जो मेरे पास आया है, जिसका अब तक अन्य उत्तरों में उल्लेख नहीं किया गया है वह dbdeploy है । मुझे इन उपकरणों की किसी भी तुलना को पढ़ने में दिलचस्पी होगी।

कुछ अन्य प्रासंगिक संसाधन: मार्टिन फ़ॉवलर और प्रमोद सदलगे की एवोल्यूशनरी डेटाबेस डिज़ाइन पर कुछ वृद्ध पोस्ट , और पुस्तक रिफैक्टिंग डेटाबेस: एवोल्यूशनरी डेटाबेस डिज़ाइन बाय सदैलेज और स्कॉट एंबलर।


6

जावा के लिए रेल जैसी माइग्रेशन के दो स्वतंत्र कार्यान्वयन भी हैं:

1) कार्बन फाइव से मावेन-आधारित पलायन

2) हैश्रोकेट (मेरे व्यक्तिगत पसंदीदा) से एंट-आधारित कार्य

हालाँकि ये पैकेज मावेन और चींटी के लिए विशेष रूप से लिखे गए थे, कुछ काम के साथ आप उन्हें किसी भी चीज़ के लिए अनुकूलित कर सकते हैं।


5
हैशरोकेट को 2007 के बाद से नहीं छुआ गया है। कार्बन फाइव का सी 5-डीबी-माइग्रेशन उत्पाद 2010 से अपडेट नहीं किया गया है।
ग्रीन

4

Migrate4j एक उम्मीदवार की तरह लगता है, लेकिन परियोजना उत्पादन उपयोग के लिए पर्याप्त परिपक्व नहीं दिखती है।


2

DbMaintain भी है जिसे शुरू में Unitils के अंदर विकसित किया गया था लेकिन अब यह एक समर्पित परियोजना है। हम वर्तमान में इसका उपयोग कर रहे हैं और बहुत संतुष्ट हैं (जिसका मतलब यह नहीं है कि कोई अच्छा विकल्प नहीं है)। मैं उन्हें अपने डेटाबेस + माइग्रेशन बुकमार्क (मावेन का समर्थन करने वाले उपकरणों पर ध्यान देने के साथ) में अधिक सूचीबद्ध करता हूं ।


1
इस तरह के उपकरण हमें तेज और सुरक्षित रूप से विकसित करने में मदद करेंगे
आर्थर रोनाल्ड

@ आर्थर हां, यह बहुत अच्छी बात है कि हमें भी कुछ उपकरण मिले हैं। एक वातावरण से दूसरे वातावरण में कैस्केडिंग स्कीमा अपडेट होना अब हमारे लिए खुशी की बात है :)
पास्कल थिवेंट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.