الإجابة المختصرة: نقل أودو (اودو) إلى استضافة جديدة بأمان يعتمد على ثلاثة أمور: اختبار النقل على نسخة تجريبية أولًا، وإيقاف العمل على النظام القديم خلال فترة تبديل قصيرة، ونقل قاعدة البيانات ومخزن الملفات معًا. وبهذه الطريقة يكون التوقف الفعلي عادة هو الوقت اللازم لنسخ النسخة الاحتياطية الأخيرة، وهو أقل من ساعة في معظم قواعد البيانات الصغيرة والمتوسطة.
قبل البدء: اجمع المعلومات
تفشل معظم عمليات النقل بسبب شيء منسيّ، لا لأن النقل نفسه صعب. اكتب ما يلي:
- إصدار أودو بالضبط ونوعه: Community أو Enterprise.
- كل الوحدات المخصصة ووحدات الطرف الثالث، مع مستودع المصدر لكل منها.
- أي حزم Python أو مكتبات نظام إضافية تحتاجها هذه الوحدات.
- حجم قاعدة البيانات وحجم مخزن الملفات.
- كل التكاملات: المتاجر الإلكترونية، وبوابات الدفع، وخوادم البريد، وZATCA، وأي نظام يتصل بواجهة API الخاصة بأودو.
- الإجراءات المجدولة التي ترسل رسائل بريد أو تتصل بأنظمة خارجية.
الخطوة 1: تجهيز البيئة الجديدة
جهّز الخادم الجديد بنفس إصدار أودو ونفس نوعه (Community أو Enterprise) المستخدم في الخادم القديم. فالنقل وترقية الإصدار مشروعان مختلفان، والقيام بهما معًا يجعل معرفة سبب أي مشكلة أمرًا مستحيلًا. ثبّت وحداتك المخصصة ومتطلباتها قبل استعادة أي بيانات.
الخطوة 2: استعادة تجريبية
خذ نسخة احتياطية كاملة من قاعدة البيانات مع مخزن الملفات، واستعدها على الخادم الجديد كنسخة تجريبية. وقبل أن يسجل أحد الدخول، امنع النسخة من الاتصال بالعالم الخارجي: عطّل خوادم البريد الصادر والإجراءات المجدولة، أو استخدم خيار تحييد قاعدة البيانات (Neutralize) المتاح في الإصدارات الحديثة من أودو. وإلا فقد ترسل النسخة التجريبية رسائل للعملاء أو بيانات إلى تكاملاتك.
الخطوة 3: اختبار ما يهم
- قدرة المستخدمين على تسجيل الدخول وفتح الشاشات الرئيسية بسرعة طبيعية.
- ظهور المرفقات وصور المنتجات، ما يؤكد نقل مخزن الملفات.
- ظهور التقارير الأساسية والمستندات المطبوعة بشكل صحيح.
- تحميل الوحدات المخصصة دون أخطاء في سجل الخادم.
- إمكانية فتح جلسة في نقاط البيع.
أصلح أي مشكلة تظهر هنا، ثم أعد الاستعادة التجريبية إذا لزم الأمر. فالمشكلات التي تُكتشف على النسخة التجريبية لا تكلف شيئًا، أما التي تُكتشف بعد التبديل فتكلف يوم عمل كاملًا.
الخطوة 4: التخطيط للتبديل
اختر وقتًا هادئًا مثل نهاية يوم العمل أو عطلة نهاية الأسبوع، وأبلغ المستخدمين مسبقًا. وقبل يوم أو يومين، خفّض مدة بقاء سجل DNS الخاص بنطاقك (TTL) حتى ينتشر التغيير بسرعة عند التبديل.
الخطوة 5: تنفيذ التبديل
- أوقف عمل المستخدمين على النظام القديم حتى لا تُنشأ فواتير أو طلبات جديدة.
- خذ النسخة الاحتياطية الأخيرة من قاعدة البيانات ومخزن الملفات.
- استعدها على الخادم الجديد، وهذه المرة كقاعدة البيانات الحية.
- وجّه نطاقك إلى الخادم الجديد وتأكد من تفعيل شهادة SSL.
- أعد تفعيل خوادم البريد والإجراءات المجدولة على قاعدة البيانات الحية الجديدة.
- أجرِ فحصًا سريعًا: سجّل الدخول، وافتح فاتورة، واطبع مستندًا، وافتح جلسة نقطة بيع.
الخطوة 6: بعد النقل
احتفظ بالخادم القديم لبضعة أيام مع إغلاقه أمام المستخدمين، تحسبًا للحاجة إلى مقارنة شيء. وراقب سجل الخادم والتكاملات خلال الأيام الأولى. وبعد أن تطمئن، ألغِ الاستضافة القديمة.
ملاحظة حول الفوترة الإلكترونية (ZATCA)
إعدادات ZATCA وشهاداتها محفوظة داخل قاعدة البيانات، لذلك تُنقل معها. والقاعدة الأهم أن نظامًا واحدًا فقط يُصدر الفواتير في أي وقت. لا تدع النظام القديم والجديد يرسلان فواتير إلى منصة فاتورة معًا، لأن تسلسل الفواتير وسلسلتها يجب أن يبقى متصلًا.
أخطاء شائعة
- نقل قاعدة البيانات دون مخزن الملفات، فتختفي كل المرفقات والصور.
- الاستعادة على إصدار مختلف من أودو ثم اكتشاف وحدات معطلة على النظام الحي.
- نسيان حزمة Python تحتاجها إحدى الوحدات المخصصة.
- ترك النسخة التجريبية متصلة بالبريد أو بالتكاملات.
- تغيير سجل DNS دون تخفيض مدة بقائه أولًا، فيبقى بعض المستخدمين متصلين بالخادم القديم.
الأسئلة الشائعة
كم مدة توقف أودو أثناء النقل؟
تقريبًا الوقت اللازم لأخذ النسخة الاحتياطية الأخيرة واستعادتها، وهو أقل من ساعة في معظم قواعد البيانات الصغيرة والمتوسطة. أما مخازن الملفات الكبيرة جدًا فقد تستغرق وقتًا أطول، ويمكن نسخها مسبقًا ثم مزامنة آخر التغييرات فقط أثناء التبديل.
هل يمكنني الانتقال من Odoo Online أو Odoo.sh؟
نعم. كلاهما يسمح بتنزيل نسخة احتياطية من قاعدة بياناتك مع مخزن الملفات. وقد يعمل Odoo Online أحيانًا بإصدارات وسيطة تحتاج إلى ترقية إلى إصدار قياسي قبل تشغيلها في مكان آخر.
هل تنقلون النظام مجانًا؟
نعم. في سديم كلاود ننقل قاعدة بياناتك ووحداتك المخصصة دون تكلفة، بما في ذلك الاستعادة التجريبية والتبديل.