मान लीजिए कि GUI क्लाइंट ( wxPython द्वारा ) थोड़ी देर के लिए एक रनिंग MongoDB सर्वर है ।
मैं अपनी नई Meteor परियोजना को अपने पहले से मौजूद MongoDB से कैसे जोड़ सकता हूं ?
मान लीजिए कि GUI क्लाइंट ( wxPython द्वारा ) थोड़ी देर के लिए एक रनिंग MongoDB सर्वर है ।
मैं अपनी नई Meteor परियोजना को अपने पहले से मौजूद MongoDB से कैसे जोड़ सकता हूं ?
जवाबों:
पर्यावरण चर MONGO_URL का उपयोग करें। कुछ इस तरह:
export MONGO_URL=mongodb://localhost:27017/your_db
के your_db
साथ बदलें meteor
या जो भी db आप उपयोग करना चाहते हैं।
export MONGO_URL=mongodb://localhost:27017/my_database_name
नाम के डेटाबेस में डेटा डालेगा my_database_name
। उसका मतलब था कि अगर आप चाहें, तो आप कर सकते हैं export MONGO_URL=mongodb://localhost:27017/meteor
। सोचा था कि मैं सलाह दूंगा कि आपके डेटाबेस का नाम आपके प्रोजेक्ट के समान हो।
हम उपयोग करते हैं npm
:
यदि आपके पास पहले से कोई package.json
फ़ाइल नहीं है npm init
, तो एक फ़ाइल बनाएं ।
उस फ़ाइल में निम्न पंक्ति दर्ज करें और संशोधित करें (सभी <...>
's को प्रतिस्थापित करते हुए ):
"scripts": {"meteor": "MONGO_URL=mongodb://<USER>:<PASSWORD>@<SERVER>:<PORT>/<DB> meteor"}
npm run meteor
में डैनी के जवाब टॉम Wijsman करने के लिए टिप्पणी की सिफारिश संकुल पैचिंग / मोंगो-livedata / mongo_driver.js, लाइन 21. एक बेहतर जगह एप्लिकेशन / उल्का / run.js में है, लाइन 460 इस तरह वातावरण चर अभी भी मौजूद होने उठाया जाता है , जैसे जब हरकू पर उल्का चल रहा हो। बस अपने MongoDB सर्वर के स्थान पर डिफ़ॉल्ट हार्डकोड mongodb: //127.0.0.1 बदलें।
आप ऐसा करने के लिए db.copyDatabase का उपयोग कर सकते हैं, एक चेतावनी के साथ कि बग है और आप Metoror में डेटा को अपडेट नहीं कर सकते। Https://github.com/meteor/meteor/issues/61 देखें
यदि आप Meteor के विकास संस्करण का उपयोग कर रहे हैं, तो आप अपने Meteor ऐप को शुरू करके एक चल रहे MongoDB सर्वर से डेटा स्थानांतरित कर सकते हैं, फिर:
mongo --port 3002
यह आपको Meteor ऐप के Mongo सर्वर से कनेक्ट करेगा। अब इस तरह से db.copyDatabase का उपयोग करें:
db.copyDatabase('myappDatabase', 'meteor', 'localhost');
यह डेटाबेस myappDatabase को MongeDB पर मानक पोर्ट पर चल रहे MongoDB सर्वर से Meteor ऐप Mongo सर्वर पर कॉपी करेगा। उल्का ऐप का उपयोग करने वाले डेटाबेस का नाम 'उल्का' है।
बस Meteor MongoDB डेटाबेस में डेटा को कॉपी करें - Meteor को मौजूदा डेटाबेस तक हुक करने का प्रयास करने का कोई कारण नहीं और राइटिंग चीजों को जोखिम में डालें।
mongoexport
अपने संग्रह को व्यक्तिगत रूप से डंप करने के लिए उपयोग करें , फिर mongoimport
फ़ाइलों को meteor
उल्लेखित डेटाबेस में Meteor MongoDB उदाहरण में आयात करें । Meteor MongoDB उदाहरण bind_address 127.0.0.1 के साथ पोर्ट 3002 पर चलता है, और डेटा फ़ाइलें Meteor प्रोजेक्ट उपनिर्देशिका में हैं .meteor/local/db
।
यदि आप MongoDB में आयात / निर्यात से परिचित नहीं हैं तो दस्तावेज़ देखें ।
app/lib/mongo_runner.js
यह तय करता है कि इसे कैसे लॉन्च किया जाए (आपको लॉन्च कोड की आवश्यकता भी नहीं हो सकती है, इस प्रकार इसे अक्षम करने का तरीका देखें)। इसका कनेक्शन अंदर से प्रतीत होता है packages/mongo-livedata/mongo_driver.js
, मुझे लगता है कि आप बस लाइन 21 पर url पैरामीटर बदल सकते हैं। यदि आप इसका मूल्य जानना चाहते हैं, तो उससे console.log(url);
पहले लाइन पर डालें , उल्का को फिर से चालू करें और अपने उल्का आउटपुट को करीब से देखें। सुनिश्चित करें कि आप वास्तव में इसे ट्रिगर करने के लिए अपने ऐप में एक बार उल्का कॉल करते हैं ...
console.log(url);
और जानकारी मिली! मैं आपको सुझाव दूंगा कि इसे एक काम के रूप में पूरा करने के लिए जवाब देने का कारण मुझे विश्वास है कि यह समुदाय को मदद प्रदान करता है, या कम से कम, मेरे जैसे लोग उल्का के साथ अभी तक परिचित नहीं हैं ~
मैंने केवल स्थानीयहोस्ट के बजाय अपने डिजिटल महासागर ड्रॉपलेट सर्वर का आईपी जोड़ा था, और इसने काम किया:
env: {
ROOT_URL: 'http://yourdomain.com',
MONGO_URL: 'mongodb://104.236.24.66:27017/meteor',
PORT: 3002,
},
EDIT: अपने उल्कापिंड परियोजनाओं को तैनात करने के लिए MUP का उपयोग करें: https://github.com/zodern/meteor-up
env: {
ROOT_URL: 'https://www.example.com',
MONGO_URL: 'mongodb://localhost/meteor',
},
Mup Docker का उपयोग करता है, और आपके 2 कंटेनरों को "लिंक" करेगा, इस प्रकार एक ही VM (सर्वर) पर ऐप और मोंगो दोनों को होस्ट करेगा। आपके mongoDB को सार्वजनिक IP से सुरक्षा कारणों से सुलभ नहीं होना चाहिए।
आपको अपने ऐप को एक टर्मिनल विंडो में चालू रखना है, फिर दूसरा खोलें और "उल्का मोंगो" टाइप करें और इसे काम करना चाहिए!