البحث في الموقع
المحتوى عن 'import'.
-
قد تكون عملية نقل المحتوى من موقع ووردبريس إلى آخر عمليةً تُضيّع الوقت وتُسبِّب الصداع، إذ لا تستطيع ببساطة نقل الملفات وقاعدة البيانات؛ لا تعمل ووردبريس هكذا! لحسن الحظ، هنالك أداة "استيراد" (Import) و"تصدير" (Export) في ووردبريس، لكن تلك الأدوات -لسوء الحظ- بسيطة جدًا ويلزم تطويرها لكي تلبي احتياجاتك الأخرى. سأشرح في هذا المقال خطوةً بخطوة كيفية نقل ووردبريس من مكانٍ إلى آخر. قبل أن نبدأ: خذ نسخة احتياطية من موقعك قد تكون هنالك خصوصيات لبعض حالات تثبيت ووردبريس ستؤدي إلى عرقلة عملية نقل المحتوى؛ وعلى الرغم من أنَّ هذه المقالة ستتعامل مع بعض الحالات الخاصة (عملية نقل جزء من محتوى ووردبريس تحديدًا)، لكن لا توجد ضمانة أنَّ الخطوات الموضحة هنا ستعمل بسلاسة لكل حالات التثبيت. ومن الغني عن الذكر أنَّك مسؤولٌ وحدك عن موقعك، حتى لو اتبعت هذا الدليل حتى النهاية؛ هنالك أيضًا بعض العمليات التي عليك إجراؤها على قاعدة البيانات اعتمادًا على ما الذي تريد فعله؛ وإذا أخطأتَ وحذفتَ كمية كبيرةً من البيانات فلا تلومن إلا نفسك! أنصحك بتوخي الحذر كثيرًا في هذا الصدد. أنشأتُ نسختين منفصلتين من ووردبريس مثبتتين على الخادوم المحلي لكي أوفر لك صورًا لكل خطوة من الخطوات. ربما قد ترغب في نقل محتواك إلى موقع تجريبي كبداية لتتحقّق من أن العملية ستتم كما هو مخطّط له. في النهاية، أنصحك أن تأخذ نسخةً احتياطيةً لكل الموقع في هذه المرحلة؛ لكنك بالطبع تفعل ذلك بشكلٍ دوري، صحيح؟ (إن لم تكن تأخذ نسخًا احتياطية، فأنصحك بفعل ذلك فورًا). إذا أردت القيام بعملية النقل يدويًا، فتذكر أن تُضمِّن قاعدة البيانات الخاصة بك بالإضافة إلى ملفات الموقع (وذلك لأنها تتضمن الملفات التي رفعتها على موقعك). نسخ الملفات احتياطيا يمكنك إنشاء وتنزيل نسخة ZIP من موقعك عبر FTP؛ وهذا يختلف باختلاف عميل FTP الذي تستخدمه، لكن العملية بسيطة وسهلة التطبيق. تأكد أنَّك تنزل وتحفظ ملف النسخة الاحتياطية المضغوط بشكل آمن، مثَلهُ كَمَثَلِ أيّ نسخةٍ احتياطيةٍ أخذتها سابقًا. نسخ قاعدة البيانات احتياطيا سجل دخولك إلى حسابك في phpMyAdmin واختر قاعدة البيانات التي ثبتت فيها ووردبريس. اضغط على Export في القائمة العلوية، ثم اختر Quick الذي يكون ملائمًا لأغلبية الحالات، لكن إن كان عندك جداول لأكثر من نسخة من ووردبريس في نفس قاعدة البيانات، فاضغط على Custom واختر الجداول التي تريد أخذ نسخة احتياطية منها؛ اترك جميع الخيارات البقية على حالها، وفي النهاية اضغط على Go لتنزيل ملف النسخ الاحتياطي لقاعدة بياناتك (بصيغة sql). إذا جرت الأمور كما هو متوقع، فلن نحتاج إلى النسخة الاحتياطية، لكن من المُستحسن دائمًا أخذ نسخة احتياطية قبل الإقدام على إجراء عملية كالتي سنفعلها. وإن كان في الموقع الذي ستنقل المحتوى إليه بعض المقالات، فيجب أخذ نسخة احتياطية له كذلك. لنبدأ العمل بعد أخذ الاحتياطات اللازمة. تغيير عنوان URL موقع ووردبريس: نقل موقع كامل إذا كنت تفكر في تغيير رابط URL لموقعك أو تريد نقل كل شيء من نسخة إلى أخرى، فاعلم أنَّك قد انتقيت أسهل خيار؛ فأدوات ووردبريس للتصدير (Export) والاستيراد (Import) ستفي تمامًا بالغرض، وليس عليك القيام بأي عمليات معقدة. إليك طريقة نقل جميع محتويات موقع ووردبريس من صفحات وصور وملفات ومنشورات …إلخ. إلى موقع جديد. من الأسهل أن تُنشِئ نسخة ووردبريس جديدة على خادومك الجديد (أو في مكانٍ آخر في نفس الخادوم) ثم تستخدم التصدير/الاستيراد بدلًا من نقل ملفات الضبط. يجب أن تكون نسخة ووردبريس عندك محدثةً إلى آخر إصدار، وإن لم تكن محدَّثةً فعليك ترقيتها أولًا؛ وإن لم تستطع الترقية لسببٍ من الأسباب -مثل الحاجة إلى استخدام إضافة معينة لا تعمل على الإصدارات الحديثة- فيمكن أن تُثبِّت إصدارًا قديمًا، لكن ذلك ليس مستحسنًا لاحتمال وجود مشكلات أمنية في الإصدارات القديمة من ووردبريس. أولا: التصدير من الموقع القديم افتح لوحة التحكم في ووردبريس واضغط على Export (تصدير) من قائمة Tools (أدوات). أبقِ على خيار All content (كل المحتوى) مُفعَّلًا لأنك تريد تصدير كل شيء، ثم اضغط على Download Export File (تحميل ملف التصدير). سيتم إنشاء ملف XML. أبقه في مكانٍ آمن ريثما تنقله إلى الموقع الجديد. ثانيا: تثبيت إضافة الاستيراد تثبيت إضافة WordPress Importer: الآن في موقع ووردبريس الجديد الذي تريد الانتقال إليه، اذهب مرةً أخرى إلى Tools (الأدوات) لكن هذه المرة اختر Import (استيراد). ستظهر لك قائمة بآليات الاستيراد المتوفرة، التي عليك أن تختار WordPress من بينها. اضغط على Install Now ثم انتظر تنزيل وتثبيت الإضافة. عليك بعدها -إن جرت الأمور على ما يرام- أن تضغط على Activate Plugin & Run Importer في الصفحة التي ستظهر لك. يجب أن تكون قادرًا في هذه المرحلة على استيراد ملف XML الذي أنشأتَه في الخطوة السابقة. ثالثا: رفع المحتوى اضغط على Choose File (اختر ملف) واختر ملف XML الذي أنشأتَه في موقعك القديم. اضغط بعدها على زر Upload file and import (رفع الملف واستيراده). رابعا: اختيار المحتوى ستُعطى خيارًا لإسناد المحتوى الذي سيتم استيراده إلى مستخدمين موجودين في موقعك الجديد (إذا كان لديك حساب مستخدم في الموقع القديم والجديد، فيمكنك إسناد مقالاته في الموقع القديم إلى حسابه في الموقع الجديد)، أو يمكنك إنشاء المستخدمين إما بأن تكون لهم نفس أسمائهم القديمة أو أن تُنشِئ واحدًا جديدًا تختاره أنت، وهذا يضمن أنَّ كل المحتوى الذي سيتم استيراده سيُسنَد إلى حساب مستخدمٍ ما موجود في الموقع الجديد. إذا كانت لديك أيّة صور أو ملفات تريد نقلها إلى الموقع الجديد، فعليك بكل تأكيد أن تختار الخيار Download and import file attachments (تنزيل واستيراد المرفقات)، لاحظ أنَّه ليس مفعلًا افتراضيًا. اضغط على زر Submit لإكمال عملية الاستيراد. قد يكون تحميل الصفحة أطول من المعتاد بسبب إنشاء سجلات جديدة في قاعدة البيانات، لكن سينتهي تحميلها حكمًا. انتظر بصبر إلى أن تكتمل العملية وبعدها ستجد أنَّ جميع محتوى موقعك السابق قد تم استيراده إلى موقعك الجديد الذي دبَّت فيه الحياة! نقل جزئي للمحتوى حسنًا، ما سبق كان سهلًا للغاية، لكن إن كنت تتطلع نحو تصدير بعض محتويات موقعك، فللأسف لن تكون أدوات ووردبريس وحدها كافيةً بالنسبة إليك. اختيار All content (كل المحتوى) هو الطريقة الوحيدة لتصدير المرفقات (أي الملفات التي تظهر في قسم Media أو الوسائط)؛ أي لو أردت نقل أجزاء مُحدَّدة من المحتوى بالإضافة إلى الصور المرتبطة بتلك الأجزاء، فأنت هنا أمام خيارين: إما أن تنقل كل المحتوى ثم تحذف الأجزاء التي لا تريدها (وهذه مضيعةٌ للوقت، خصوصًا في المواقع الكبيرة)، أو أن تحاول نقل الملفات وقاعدة البيانات يدويًا، وهذا ما سأريك إياه الآن. سأشرح عملية تصدير وتعديل SQL التي سأريك إياها لغرض ألا وهو نقل المرفقات؛ لكن يمكنك استخدام طريقة مماثلة لها بنقل قاعدة البيانات كلها، وهذا مفيدٌ إذا أردت نقل كل المحتوى لكن ملف XML الناتج كبيرٌ للغاية ولا يمكن رفعه عبر أداة الاستيراد. أولا: اختيار المحتوى الذي تريد تصديره اذهب مرةً أخرى إلى Tools (الأدوات) ثم Export (تصدير). بعد اختيارك للمحتوى الذي تريد تصديره، اضغط على Download Export File. إذا كنت تريد اختيار أكثر من مستخدم على سبيل المثال، أو أكثر من مجال زمني، أو جميع الصفحات (pages) وجميع المنشورات من مستخدم معيّن، فيمكنك العودة إلى هذه الصفحة وإنشاء عدِّة ملفات تصدير. ثانيا: استيراد الملفات المصدرة بعد أن تصبح لديك جميع ملفات WXR XML التي تريد استيرادها، فانتقل إلى الموقع الجديد وثبِّت إضافة WordPress Importer كما رأيت سابقًا. يمكنك رفع ملفات (ملف في كل مرة) كما في الفقرة السابقة وستتم إضافة المحتوى الموجود فيها إلى الموقع الجديد. لكن هذه ليس النهاية، لأنك ستلاحظ عدم وجود أيّة مرفقات (الصور المرفقة على سبيل المثال) في موقعك الجديد. نسخ ملفات الوسائط انتقل إلى مجلد /wp-content/uploads/ في موقعك القديم عبر عميل FTP. سأستخدم هنا مستكشف ملفات ويندوز 10 عميلًا لبروتوكول FTP، لكن أغلبية تطبيقات FTP قادرة على ضغط وتنزيل الملفات. نزِّل ملف ZIP الذي ولَّدته ثم ارفعه إلى موقعك الجديد عبر FTP (أو انسخ الملف والصقه في عميل FTP إن استطعت الوصول إلى كلا الموقعين منه [أي العميل]). يمكنك الآن استخراج جميع الملفات من المجلد المضغوط في مجلد Uploads. لسوء الحظ، هذه ليست آخر خطوة؛ فعلى الرغم من أنَّ الملفات في مكانها الصحيح، لكن ووردبريس لا تعلم عنها شيئًا لأنَّ بيانات تلك المرفقات لم تُنسَخ من قاعدة البيانات. رابعا: تصدير بيانات المرفقات من قاعدة البيانات اذهب إلى phpMyAdmin في موقعك القديم وابحث عن جدول wp_posts (ضع البادئة المناسبة بدلًا من wp_). عليك الآن العثور على بيانات المرفقات (أي بيانات الوسائط)، ولهذا استخدم تعليمة SQL الآتية (لا تنسَ تغيير بادئة الجدول إن لزم الأمر) ثم اضغط على Go. SELECT * FROM wp_posts WHERE post_type = “attachment” مرِّر إلى أسفل نتائج الطلبية ثم اضغط على Show all لكي تظهر جميع السجلات ثم اضغط على Check All لاختيارها جميعًا ثم Export لتصديرها. ستتعقد بعض الأمور عند هذه النقطة، لكن لن تواجهك مشكلاتٌ إن تابعت الخطوات بحذافيرها. اختر Custom لإظهار كل الخيارات الممكنة. مرِّر إلى الأسفل إلى قسم Format-specific Options. اختر data. اترك كل شيءٍ على حاله ثم اضغط على Go. خامسا: تعديل ملف SQL هذه الخطوة ضرورية إن كان لقاعدة بيانات موقعك الجديد بادئة مختلفة عن قاعدة بيانات الموقع القديم الذي صدَّرتَ ملف SQL منه. عدِّل ملف .sql الناتج باستخدام محرر نصي مثل Notepad++ وابحث عن البادئة القديمة وضع البادئة الحديثة بدلًا عنها. يمكنك تجاهل هذه الخطوة إن كانت بادئة قاعدتَي البيانات متماثلة (أي أنَّ كلا الجدولين هما wp_posts). سادسا: استيراد بيانات المرفقات اذهب إلى قاعدة البيانات للموقع الجديد واعثر على جدول wp_posts (أو ما يكافؤه) ثم اضغط على Import. اضغط على Choose File -اضغط ولا تسحب وتُفلِت، لعدم توفر هذه الميزة في phpMyAdmin- ثم اختر ملف SQL الذي صدَّرتَه. اترك بقية الخيارات على حالها ثم اضغط على Go لتنفيذ الطلبية، ثم سترى رسالة تخبرك أنَّ الطلبية قد نُفِّذَت بنجاح، وسترى حينها المرفقات ظاهرةً في صفحة الوسائط، لكن هنالك خطوة إضافية عليك اتباعها حتى تظهر الصور بشكلٍ صحيح. سابعا: تصدير البيانات الوصفية للمنشورات بشكلٍ مشابه لما فعلناه سابقًا في قاعدة البيانات: اعثر على جدول wp_postmeta في قاعدة بيانات الموقع القديم ثم اضغط على Export. اختر Custom ثم اختر data بدلًا من structure and data كما سبق معنا. عليك هذه المرة العثور على قسم Data Creation Options واختيار REPLACE لخيار function to use when dumping data. اضغط الآن على GO لإنشاء وتنزيل ملف SQL. ثامنا: تعديل ملف SQL أكرر مرةً أخرى أنَّ عليك تعديل البادئة في ملف SQL إن اختلفت بادئة جداول قاعدة البيانات الجديدة عن القديمة. عليك أيضًا البحث عن روابط URL القديمة واستبدال الجديدة بها. تاسعا: استيراد البيانات الوصفية للمنشورات اذهب إلى جدول wp_postmeta (أو أيًّا كانت بادئة الجدول) في قاعدة بيانات الموقع الجديد، ثم استورد ملف SQL المُعدَّل كما سبق. يجب أن تكون مكتبة الوسائط جاهزةً عندك تمامًا، وقادرةً على الاندماج مع المحتوى الذي نقلته سابقًا. خاتمة تهانينا إذا نجحتَ بالمرور عبر كل تلك الخطوات، هذه طريقة التفافية لنقل بعض الصور الخاصة بمنشورات معيّنة. لكن ما تزال هنالك بعض المشكلات الصغيرة مع هذه الطريقة: لو أردت نقل بعض الصور، فعليك اختيار المجلدات يدويًا عند رفعها (أرجو أن تكون الصور التي تريدها مصنفةً حسب التاريخ، وإلا فستأخذ منك هذه المهمة وقتًا طويلًا جدًا!)؛ وقد تواجه بعض المشاكل بتكرار المفاتيح الرئيسية (primary keys) عند نقل جدول wp_posts إن كانت عندك منشوراتٌ في الموقع الجديد. من الجلي أنَّه يجب تطوير عملية التصدير/الاستيراد في الإصدارات المستقبلية من ووردبريس بدلًا من هذه الجلبة بتعديل قاعدة البيانات يدويًا. لكن استعن بالخطوات السابقة إلى أن يحين ذاك الوقت. إن كانت لديك أيّة أفكار أو طرق حول نقل أجزاء من موقع ووردبريس إلى آخر، فأرجو أن تشاركنا إياها بالتعليقات. ولا تتردد بالسؤال عن أيّة مشكلة تواجهك عند تنفيذ الخطوات السابقة، نحن موجودون دائمًا للمساعدة. هل ترغب في امتلاك موقع ووردبريس سريع وآمن؟ احصل على موقع ووردبريس احترافي بالاستعانة بأفضل خدمات الووردبريس على خمسات أنشئ موقع ووردبريس الآن ترجمة -وبتصرّف- للمقال A Step By Step Guide to Moving Content From One WordPress Site to Another لصاحبه Tom Ewer.
-
يُعدّ MongoDB أحد أشهر محركات قواعد البيانات من نوع NoSQL، فهو شهير بمرونته، فعاليّته، موثوقيته وسهولة استخدامه، وسنستعرض في المقال كيفية استيراد وتصدير قواعد بيانات MongoDB. تجدر الإشارة إلى أنّه عند حديثنا عن الاستيراد والتصدير فالمقصود التعامل مع البيانات بصيغة مقروءة من قبل البشر، ومتوافقة مع باقي المنتجات البرمجية. بالمقابل، فإن عمليات النسخ الاحتياطي واستعادة النسخ الاحتياطية تُنشئ أو تَستخدم نمط بيانات ثنائية binary خاصّة بـ MongoDB، وتحافظ بالتالي على تناسق وسلامة البيانات إضافة إلى سمات MongoDB الخاصة. بناء على ما سبق، فإنّه من المفضّل استخدام النسخ الاحتياطي عند الحاجة لنقل/تهجير migration قاعدة البيانات طالما أن هناك توافقية ما بين النظام المصدر والنظام الهدف، وهذا الموضوع خارج إطار حديثنا. المتطلبات الأولية قبل أن نتابع، يرجى التأكّد من توفر المتطلبات التالية بشكل كامل: نظام تشغيل Ubuntu 14.04، مستخدم عادي بدون صلاحيات مدير نظام، لكنّه يملك صلاحية تنفيذ أمر sudo. يمكن مراجعة الإعداد الابتدائي لخادوم أوبنتو 14.04 لمزيد من المعلومات، تثبيت وإعداد MongoDB. وعدا عمّا قد يستثنى بوضوح، فإنّ جميع الأوامر التي تحتاج لصلاحيات مدير نظام root في المقال، يجب أن يتم تنفيذها من قبل مستخدم عادي يملك صلاحيات sudo. فهم الأساسيات سنحتاج لفهم بعض الأمور قبل أن نتابع المقال، وإن كنت تملك بعض الخبرة مع قواعد البيانات العلائقية relational المشهورة مثل MySQL، فربّما تجد بعض التشابه عند العمل مع MongoDB. إنّ أول ما تحتاج معرفته حول MongoDB هو أنها تستخدم صيغتي json و bson (الصيغة الثنائية binary من json) بغرض تخزين المعلومات. إنّ Json هي صيغة مقروءة من قبل البشر وبالتالي مناسبة جدًا لتصدير واستيراد البيانات في نهاية الأمر، ومن الممكن أيضًا التعديل على البيانات المصدّرة باستخدام أيّ أداة تدعم json، بما في ذلك أي محرر نصوص بسيط. يبدو أحد الأمثلة عن مستند json على الشكل التالي: {"address":[ {"building":"1007", "street":"Park Ave"}, {"building":"1008", "street":"New Ave"}, ]} إنّ Json مناسبة جدًا للعمل معها، لكنها لا تدعم جميع أنماط البيانات المتاحة في bson، وهذا يعني بأنّه سيكون لدينا "فقدان في الدقّة" في البيانات عند استخدام json، ولهذا السبب فإنّه من الأفضل استخدام الصيغة الثنائية bson في حالة النسخ الاحتياطي والاستعادة لأنّها ستساعد في استعادة قاعدة بيانات MongoDB بشكل أدق. ثانيًا، ليس هناك داعٍ للقلق حول إنشاء قاعدة البيانات إن لم تكن موجودة أصلًا عند القيام باستعادة نسخة احتياطية، حيث سيتم إنشاؤها بشكل تلقائي. إضافة لذلك، فإنّ هيكل المجموعات collections (التي تُقابل الجداول) في القاعدة -بخلاف محركات قواعد البيانات الأخرى- سيتم إنشاؤها أيضًا بشكل تلقائي عند إدراج insert أول سطر. ثالثًا، إن قراءة وإدراج كمّية كبيرة من البيانات في MongoDB، قد يستهلك مصادر النظام كقدرة المعالج، الذاكرة ومساحة التخزين بشكل كبير جدًا وهذه نقطة حساسة على اعتبار أن MongoDB تُستخدم عادة مع قواعد البيانات الكبيرة والبيانات الضخمة، والحل الأسهل لهذه المشكلة هو تنفيذ عمليات التصدير والنسخ الاحتياطي ليلًا. رابعًا، فقد يكون هناك مشكلة في تناسق البيانات consistency إن كنت تملك خادوم MongoDB معرّض لضغط العمل باستمرار وبالتالي قد تتغير البيانات أثناء عملية التصدير، حيث لا يوجد حل بسيط لهذه المشكلة ولكن في نهاية المقال سنتحدث حول استنساخ البيانات replication. استيراد المعلومات إلى قاعدة بيانات MongoDB لنتعلّم كيفية استيراد المعلومات إلى قاعدة بيانات MongoDB، سنقوم باستخدام عيّنة قاعدة بيانات معروفة حول المطاعم. إنّ القاعدة بصيغة json ويمكن تحميلها باستخدام الأمر wget بالشكل التالي: $ wget https://raw.githubusercontent.com/mongodb/docs-assets/primer-dataset/primer-dataset.json وحالما ينتهي التحميل ستحصل على ملف حجمه 12 ميغابايت يُدعى primer-dataset.json في المجلّد الذي قمت بتنفيذ الأمر فيه. سنقوم باستيراد البيانات من هذا الملف إلى قاعدة بيانات جديدة سنسمّيها newdb وضمن جدول سنسمّيه restaurants. للقيام بعملية الاستيراد سنستخدم الأمر mongoimport على الشكل التالي: $ sudo mongoimport --db newdb --collection restaurants --file primer-dataset.json ويُفترض أن تكون نتيجة تنفيذ الأمر السابق على الشكل التالي: 2016-01-17T14:27:04.806-0500 connected to: localhost 2016-01-17T14:27:07.315-0500 imported 25359 documents وكما يظهر في الناتج السابق، فقد تم استيراد 25359 مستند، ولأننا لم نكن نملك قاعدة بيانات باسم newdb، فقد قام محرّك MongoDB بإنشائها بشكل تلقائي، وللتأكّد من نجاح عملية الاستيراد سنقوم بالاتصال بقاعدة البيانات newdb على الشكل التالي: $ sudo mongo newdb سنلاحظ عند تنفيذ الأمر بأن شكل مِحرف سطر الأوامر قد تغيّر، مما يشير إلى نجاح الاتصال بقاعدة البيانات، وللتحقق الآن من عدد المستندات التي تم استيرادها، سنقوم بتنفيذ الأمر التالي: > db.restaurants.count() ويفترض أن تكون النتيجة 25359، وهو مطابق تمامًا لعدد المستندات المستوردة. وللتحقق بشكل أفضل من نجاح الاستيراد، سنقوم باختيار المستند الأول من مجموعة المطاعم بتنفيذ الأمر التالي: > db.restaurants.findOne() وينبغي أن تكون النتيجة على الشكل التالي: { "_id" : ObjectId("569beb098106480d3ed99926"), "address" : { "building" : "1007", "coord" : [ -73.856077, 40.848447 ], "street" : "Morris Park Ave", "zipcode" : "10462" }, "borough" : "Bronx", "cuisine" : "Bakery", "grades" : [ { "date" : ISODate("2014-03-03T00:00:00Z"), "grade" : "A", "score" : 2 }, ... ], "name" : "Morris Park Bake Shop", "restaurant_id" : "30075445" } إنّ مثل هذا التحقق قد يظهر أيّ مشاكل في محتوى المستندات أو ترميزها أو ما شابه ذلك، فصيغة json تستخدم ترميز UTF-8 ويجب أن تكون البيانات المصدّرة والمستوردة بهذا الترميز. تذكّر هذا الأمر دومًا عند القيام بتحرير ملفات json بشكل يدوي، وفيما عدا ذلك فإنّ محرك MongoDB سيتولّى الأمر عنك بشكل تلقائي. أخيرًا، للخروج من سطر أوامر MongoDB نقوم بتنفيذ الأمر exit على الشكل: > exit وسيتم الخروج والعودة إلى سطر أوامر النظام كمستخدم عادي. تصدير المعلومات من قاعدة بيانات MongoDB كما ذكرنا سابقًا، فإنّه من الممكن الحصول على بيانات مقروءة ومفهومة عند القيام بتصدير المعلومات من قاعدة MongoDB، وتكون صيغة الملف المصدّر بشكل افتراضي هي json، ولكن من الممكن أيضًا الحصول على البيانات في ملف بصيغة (csv (comma separated value. نستخدم الأمر mongoexport لتصدير البيانات من قاعدة MongoDB، ويسمح أمر التصدير باختيار قاعدة بيانات، مجموعة من المجموعات collection، حقل من الحقول، وحتّى استخدام استعلام من أجل التصدير. وكمثال بسيط على أمر التصدير mongoexport، سنقوم بتصدير مجموعة المطاعم من قاعدة newdb التي قمنا باستيرادها سابقًا، ويبدو الأمر على النحو التالي: $ sudo mongoexport --db newdb -c restaurants --out newdbexport.json حيث قمنا في الأمر السابق باستخدام المُعامل db-- لتحديد القاعدة، والمُعامل c- لتحديد المجموعة، والمُعامل --out لتحديد اسم الملف الذي سيتم تصدير البيانات إليه، وستكون نتيجة تنفيذ الأمر السابق بشكل ناجح على النحو التالي: 2016-01-20T03:39:00.143-0500 connected to: localhost 2016-01-20T03:39:03.145-0500 exported 25359 records ويظهر الأمر السابق أنه قد تم تصدير 25359 مستند، وهو مماثل تمامًا لعدد المستندات التي قمنا باستيرادها سابقًا. قد نحتاج في بعض الأحيان إلى تصدير جزء من مجموعة، وبالأخذ بعين الاعتبار هيكل ومحتوى مستند المطاعم بصيغة json، سنقوم بتصدير معلومات جميع المطاعم التي تحقق الشرط الذي يقول بأنها موجودة في المنطقة الإدارية المسمّاة Bronx والتي تقدّم الطعام الصيني. للحصول على هذه المعلومات بشكل مباشر في حال كنّا متصلين بقاعدة MongoDB من خلال سطر أوامر MongoDB، فسنقوم بالاتصال بقاعدة البيانات مجددًا: $ sudo mongo newdb ومن ثم سنستخدم الاستعلام: > db.restaurants.find( { borough: "Bronx", cuisine: "Chinese" } ) وسيتم عرض النتيجة مباشرة، وللخروج من سطر أوامر MongoDB سننفّذ الأمر exit كما ذكرنا سابقًا. أمّا لتصدير البيانات من سطر أوامر النظام دون أن نكون متصلين بقاعدة البيانات مسبقًا، فسنقوم بتمرير الاستعلام السابق كمُعامل لأمر mongoexport باستخدام المُعامل q- على الشكل التالي: $ sudo mongoexport --db newdb -c restaurants -q "{ borough: 'Bronx', cuisine: 'Chinese' }" --out Bronx_Chinese_retaurants.json لاحظ في الأمر السابق بأنّا قمنا باستخدام علامات الاقتباس الفرديّة ' داخل علامات الاقتباس الزوجيّة " لأنّ هذا شرط من شروط كتابة الاستعلام في سطر الأوامر، ولو احتجنا لاستخدام علامات اقتباس زوجيّة أو إشارة $ فسنحتاج لتخطي المحارف الخاصة باستخدام \ بإدراجها قبل المحرف الخاص في الاستعلام. إن تمت عملية التصدير بنجاح فينبغي أن تكون النتيجة على الشكل التالي: 2016-01-20T04:16:28.381-0500 connected to: localhost 2016-01-20T04:16:28.461-0500 exported 323 records تُظهر النتيجة السابقة بأنّ هناك 323 سجل قد تم تصديره، ويمكن إيجادها ضمن ملف Bronx_Chinese_retaurants.json الذي قمنا بتحديده. الخلاصة تعرفّنا في المقال على أساسيات استيراد وتصدير المعلومات من وإلى قاعدة بيانات MongoDB. إنّ عملية الاستنساخ replication مفيدة في حالة التوسعة، ولكنّها مهمة أيضًا للنواحي التي تحدثنا عنها، حيث تسمح باستمرارية تشغيل خدمات MongoDB دون انقطاع عبر خادوم MongoDB ثانوي بينما نقوم باستعادة نسخة احتياطية إلى الخادوم الرئيسي عند حدوث فشل. إن جزءًا من عملية الاستنساخ هو سجل العمليات (oplog)، الذي يقوم بتسجيل جميع العمليات التي تقوم بتغيير البيانات، ويمكن استخدام هذا السجل كما في MySQL، لاستعادة البيانات بعد أن تكون آخر عملية نسخ احتياطي قد بدأت. تذكّر بأن عمليات النسخ الاحتياطي تحصل في الليل عندما يكون نشاط قاعدة البيانات في حدّه الأدنى، وإن قررت استعادة نسخة احتياطية لقاعدة البيانات في الفترة المسائية (أي قبل أن تبدأ عملية النسخ الاحتياطي الليلية) فإنّك ستفقد بذلك جميع التعديلات التي تمت على القاعدة منذ آخر عملية نسخ احتياطي. ترجمة -وبتصرّف- للمقال How To Import and Export a MongoDB Database on Ubuntu 14.04 لصاحبه Anatoliy Dimitrov.