इसलिए मेरे पास एक नोडज एप्लिकेशन है जो उपयोग कर रहा है sailsjs वेब ढांचा। Im विकास करते समय, मेरे पास पाल-डिस्क पर एडॉप्टर सेट है। से नमूना डेटा disk.db
के समान ही
{
"data": {
"authentication": [
{
"user_id": 1,
"username": "user1",
"encrypted_password": "password here",
"createdAt": "2014-05-12T07:40:24.901Z",
"updatedAt": "2014-08-18T19:37:22.851Z",
"id": 1,
"email": "user1@email.com"
}
],
"user": [
{
"name": "user0001",
"email": "user1@email.com",
"role": [
"admin"
],
"phone": [
{}
],
"status": "Active",
"createdAt": "2014-05-12T07:48:11.028Z",
"updatedAt": "2014-05-24T08:12:41.646Z",
"id": 1,
"username": "user1"
}
]
}
}
यह मेरे स्थानीय मशीन पर पूरी तरह से काम करता है। अब, मैं इसे उत्पादन पर तैनात करने और अपने डेटाबेस के रूप में मोंगोडब का उपयोग करने के लिए तैयार हूं। मेरे पास सभी कनेक्शन सेटअप हैं और मैं सफलतापूर्वक अपने डीबी पर कनेक्ट कर सकता हूं।
मेरा प्रश्न है: क्या कोई ऐसा तरीका है जिससे मैं अपने स्थानीय डिस्क डेटाबेस को आयात कर सकता हूं (disk.db
) मेरे जोंस डेटा फॉर्मेट या कलेक्शन को मेनटेन करते समय मोंगोडब को? या मुझे मैन्युअल रूप से अपने संग्रहों को बनाने और प्रत्येक संग्रह को आयात करने की आवश्यकता है?
उत्तर:
उत्तर № 1 के लिए 4इस तरह का कोई उपकरण या आधिकारिक तरीका नहीं हैपाल के साथ प्रवास। आपके पास कितने मॉडल हैं और आपके लिए चीजों को माइग्रेट करने के लिए एक स्क्रिप्ट लिखना कितना थकाऊ होगा, इस पर निर्भर करता है, एक विकल्प यह है कि आप अपने मॉडल को मिरर करें - यदि आपके पास एक User.js
, एक नया मॉडल बनाएं UserNew.js
जैसा दिखता है:
module.exports = {
connection: "mongoDbConnection",
tableName: "user",
attributes: <same as User.js attributes>
}
और फिर अपने में config / bootstrap.js कर:
User.find().exec(function(err, users) {
UserNew.create(users).exec(...);
}
उन्हें स्थानांतरित करने के लिए।
यह एक बार की बात होगी जिसके बाद आप अपने मूल को छोड़ सकते हैं User.js
और नाम बदलें UserNew.js
सेवा मेरे User.js
। बहुत हैप्पी, लेकिन फिर से हम कितना डेटा के बारे में बात कर रहे हैं, यह सबसे तेज़ विकल्प हो सकता है!
जवाब के लिए 0 № 2
मैंने sgress454 के उत्तर पर बनाया और इसे चारों ओर फ़्लिप किया। एक न्यूयूज़र के बजाय मैंने एक ओल्डयूसेरलोकेशन.जेएस मॉडल बनाया।
module.exports = {
connection: "localDiskDb",
tableName: "user",
attributes: {
//same as in User.js
}
}
और डिफ़ॉल्ट मॉडल में मैंने mongo DB निर्दिष्ट किया।
बूटस्ट्रैप फ़ंक्शन में मैंने इसे जोड़ा:
User.find().exec(function(err, users){
if(!err && users.length == 0){
OldUserLocation.find().exec(function(err, oldUsers) {
if(!err && oldUsers.length >0){
User.create(oldUsers).exec(function (err){
cb();
});
}
else{
cb();
}
});
}
else{
cb();
}
});
सीधे शब्दों में कहें, अगर मोंगो डीबी में उपयोगकर्ता मॉडल का कोई उपयोगकर्ता नहीं है, तो मैं लोकलडिस्क डीबी से कोशिश करता हूं और आयात करता हूं। यदि यह पहले से ही उपयोगकर्ता है मुझे लगता है कि आयात पहले से ही किया गया है।
जवाब के लिए 0 № 3
एक और हैकी तरीका है जो मैं देख रहा हूँ:
- खुला
.tmp/localDiskDb.db
- किसी वस्तु की नकल करना
- का उपयोग करके एक POST क्वेरी चलाएँ डाकिया https://www.getpostman.com/apps
- POST को क्वेरी सेट करें
- "बॉडी" टैब में एंडपॉइंट URL को "कच्चा" चुनें, "JSON" बॉक्स में ऑब्जेक्ट पेस्ट करें
- प्रेस भेजें
राजकुमार, दोहराना