2012-07-10 8 views
8

मैं node.js सर्वर पर काम कर रहा हूं, और नोड-मोंगो-मूल के साथ मोंगोडीबी का उपयोग कर रहा हूं। मैं रेल माइग्रेशन के समान, एक डीबी माइग्रेशन फ्रेमवर्क की तलाश में हूं। कोई सिफारिशें?नोड-मोंगो-देशी माइग्रेशन फ्रेमवर्क

+0

कृपया यह उत्तर देखें: http://stackoverflow.com/a/34271611/5589395 –

उत्तर

8

मुझे मोंगोडीबी माइग्रेशन करने के लिए एक विशिष्ट देशी नोड.जेएस उपकरण के बारे में पता नहीं है .. लेकिन आपके पास अन्य भाषाओं में लिखे गए टूल का उपयोग करने का विकल्प है (उदाहरण के लिए, Mongoid Rails Migrations)।

यह ध्यान देने योग्य है कि Schema design के दृष्टिकोण और मोंगोडीबी में डेटा मॉडलिंग संबंधपरक डेटाबेस से अलग है। विशेष रूप से, संग्रह के लिए लगातार या पूर्व निर्धारित स्कीमा की आवश्यकता नहीं होती है, इसलिए पारंपरिक माइग्रेशन क्रियाओं जैसे कॉलम जोड़ने और हटाने की आवश्यकता नहीं होती है।

हालांकि .. माइग्रेशन जिसमें डेटा परिवर्तन शामिल हैं, अभी भी उपयोगी हो सकते हैं।

यदि आपका एप्लिकेशन डेटा को एक निश्चित प्रारूप में होने की उम्मीद कर रहा है (उदाहरण के लिए आप "नाम" फ़ील्ड को "पहला नाम" और "अंतिम नाम" में विभाजित करना चाहते हैं) तो ऐसी कई रणनीतियां हैं जिनका उपयोग आप कर सकते हैं एक और प्रोग्रामिंग भाषा में लिखा माइग्रेशन उपकरण का उपयोग कर अपील नहीं कर रहा है:

  • अपने आवेदन तर्क में संभाल डेटा मतभेद है, तो पुराने और नए डेटा स्वरूप दोनों स्वीकार्य (शायद "उन्नयन" रिकॉर्ड एक नए प्रारूप से मिलान करने के लिए के रूप में वे कर रहे हैं अपडेट किया गया)
  • डेटा माइग्रेशन
  • एक बार बंद करने के लिए एक स्क्रिप्ट लिखें, मोंगोडीबी हेल्पर्स को योगदान दें https://github.com/afloyd/mongo-migrate: node-migrate
+0

जानकारी के लिए धन्यवाद। उन विकल्पों को समझदार लगता है। सबसे अधिक "नोड" समाधान की तरह लगता है नोड-माइग्रेट या होमब्रू समाधान के साथ जाना है। –

+0

नोड-माइग्रेट अच्छा दिखता है: क्या मैं अपने ऊपर और नीचे के अंदर मोन्गोज का उपयोग कर सकता हूं? इसके अलावा, मुझे देव, परीक्षण और प्रोड में अपने डेटाबेस पर कुछ डेटा परिवर्तन करने की आवश्यकता है। क्या इस माइग्रेशन स्क्रिप्ट को किसी भिन्न वातावरण के विरुद्ध चलाने का कोई तरीका है? – chovy

6

मैं सिर्फ नोड मोंगो देशी के आधार पर एक बुनियादी प्रवास ढांचे लिखने के बाद। यह आपको & नीचे माइग्रेट करने की अनुमति देगा, साथ ही एक विशिष्ट संशोधन संख्या में ऊपर/नीचे माइग्रेट करने की अनुमति देगा। यह शुरुआत में नोड-माइग्रेट पर आधारित था, लेकिन इसे काम करने के लिए थोड़ा सा बदलाव करने की आवश्यकता थी।

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

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

अधिक जानकारी के लिए documentation देखें।

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