ترقية أودو من 12 إلى 18: خطة عملية بدون مفاجآت
كثير من الشركات في السعودية ما زالت تعمل على Odoo 12، والنظام «شغّال» فلا أحد يريد لمسه. لكن مع الفوترة الإلكترونية والإصدارات الحديثة، البقاء على 12 صار أغلى من الترقية. نقلت نظاماً كاملاً من Odoo 12 إلى 18 في بيئة إنتاج فعلية، وهذه الخطة التي أنصح بها.
لماذا تترقّى الآن؟
- الدعم انتهى: أودو يدعم كل إصدار رئيسي ثلاث سنوات فقط، وإصدار 12 خارج الدعم منذ سنوات. لا إصلاحات أمنية ولا تحديثات.
- الفوترة الإلكترونية: الربط الرسمي مع منصة فاتورة (المرحلة الثانية) غير متوفر في Odoo 12، ويحتاج إصداراً حديثاً. شرحته في دليل ربط أودو مع منصة فاتورة.
- بيئة التشغيل: Odoo 12 مبني على إصدارات قديمة من Python وPostgreSQL، وتشغيله على خوادم حديثة يصبح أصعب مع الوقت.
- السرعة والواجهة: الإصدارات الحديثة أسرع وواجهتها أسهل بكثير، وهذا يظهر مباشرة في رضا المستخدمين.
طرق الترقية المتاحة
| الطريقة | تناسب من؟ | ملاحظات |
|---|---|---|
| خدمة الترقية الرسمية من أودو | مشتركو Odoo Enterprise | مجانية مع الاشتراك. أودو ترقّي قاعدة البيانات وموديولاتها الرسمية، لكنها لا ترقّي الموديولات المخصصة أو موديولات الأطراف الثالثة. |
| OpenUpgrade من مجتمع OCA | نسخة Community | مفتوح المصدر، وينقل القاعدة بين إصدارين رئيسيين في كل مرة، فالانتقال من 12 إلى 18 يمرّ بكل الإصدارات بينهما. |
| نقل البيانات إلى قاعدة جديدة | أنظمة فوضوية أو قليلة البيانات | تبدأ نظيفاً وتنقل البيانات الأساسية والأرصدة الافتتاحية فقط، لكن تخسر السجل التفصيلي القديم داخل النظام. |
في كل الطرق، الموديولات المخصصة مسؤوليتك: أودو لا تستطيع ترقية قاعدة بيانات فيها موديول مخصص لم يُجهَّز للإصدار الجديد.
أكبر التغييرات بين 12 و18
هذه ليست كل التغييرات، لكنها التي تكسر الموديولات المخصصة والتقارير غالباً:
| الإصدار | التغيير | ماذا يعني لك |
|---|---|---|
| 13 | دمج account.invoice داخل account.move | كل كود أو تقرير يقرأ الفواتير يحتاج إعادة كتابة. هذا أكبر تغيير في الرحلة كلها. |
| 14 – 17 | واجهة أودو انتقلت تدريجياً إلى إطار OWL | أي تخصيص JavaScript قديم في الواجهة يُكتب من جديد تقريباً. |
| 16 | التوزيع التحليلي (Analytic Distribution) بدل الحساب والوسوم التحليلية | راجع تقارير مراكز التكلفة وأي كود يعتمد على الحساب التحليلي في السطر. |
| 17 | إلغاء attrs وstates في الواجهات | كل ملفات XML التي تخفي حقولاً أو تجعلها للقراءة فقط تحتاج تعديلاً. |
| 18 | تسمية واجهة tree أصبحت list، وتغييرات في خدمات الواجهة | تعديلات صغيرة لكنها في ملفات كثيرة. |
الخطة خطوة بخطوة
1. جرد ما عندك
قبل أي شيء، اكتب قائمة بكل الموديولات المثبّتة وقسّمها إلى ثلاث مجموعات: رسمية من أودو، وموديولات أطراف ثالثة، ومخصصة. ثم اسأل عن كل موديول مخصص: هل ما زال مستخدماً؟ في الغالب ستجد موديولات كُتبت لحالة انتهت، وحذفها يوفّر وقتاً كبيراً.
وابحث لكل موديول طرف ثالث عن نسخة متوافقة مع 18. بعضها أصبح جزءاً من أودو نفسه، وبعضها له بديل أفضل.
2. نظّف البيانات قبل الترقية
- أغلق الفترات المحاسبية القديمة، وصحّح القيود غير المتوازنة.
- اربط الدفعات المفتوحة بالفواتير، وألغِ المسودات المنسية.
- احذف المستخدمين والمستودعات والمنتجات المكررة أو اجعلها مؤرشفة.
البيانات الفوضوية تترقّى فوضوية، وأي خطأ قديم سيظهر بشكل أوضح بعد الترقية.
3. رقِّ نسخة تجريبية أولاً
خذ نسخة كاملة من قاعدة البيانات ومجلد المرفقات (filestore)، ورقّها على خادم منفصل. لا تجرّب أبداً على قاعدة الإنتاج. وتوقّع أنك ستعيد هذه الخطوة أكثر من مرة حتى تمر بدون أخطاء.
4. حوّل الموديولات المخصصة
هذا عادة أطول جزء في المشروع. لا تنقل الكود كما هو: الإصدار 18 فيه حلول جاهزة لأشياء كثيرة كانت تحتاج تخصيصاً في 12. أعد كتابة كل موديول بطريقة الإصدار الجديد، واكتب له سكربت ترحيل (migration script) إذا تغيّرت حقوله أو جداوله.
5. تحقّق من الأرقام
الترقية الناجحة ليست التي تفتح بدون أخطاء، بل التي تطابق أرقامها النظام القديم. قارن بين النسختين:
- ميزان المراجعة لكل سنة مالية.
- أعمار الديون للعملاء والموردين، ورصيد كل شريك.
- كميات المخزون لكل مستودع وموقع، وقيمة المخزون.
- أوامر البيع والشراء المفتوحة، والفواتير غير المدفوعة.
- تسلسل أرقام الفواتير والقيود، حتى لا يبدأ الترقيم من جديد.
6. اختبار المستخدمين والتدريب
اطلب من كل قسم أن ينفّذ دورة عمله الكاملة على النسخة التجريبية: من عرض السعر إلى الفاتورة والتحصيل، ومن طلب الشراء إلى الاستلام والدفع. ودرّب المستخدمين على الواجهة الجديدة قبل يوم التشغيل، لا بعده.
7. يوم التشغيل
- اختر وقتاً قليل الحركة، مثل نهاية الأسبوع، وأبلغ الجميع بتوقف النظام مسبقاً.
- أوقف النظام القديم وخذ نسخة احتياطية نهائية.
- نفّذ الترقية بنفس الخطوات التي جرّبتها، ثم أعد مطابقة الأرقام الأساسية.
- احتفظ بالنظام القديم للقراءة فقط عدة أشهر للرجوع إليه.
أخطاء تكلّف كثيراً
| الخطأ | النتيجة |
|---|---|
| نقل الموديولات المخصصة كما هي بدون مراجعة | كود ثقيل لا يستفيد من مزايا الإصدار الجديد، ويصعّب الترقية القادمة. |
| نسيان مجلد المرفقات (filestore) | فواتير ومستندات بدون ملفاتها بعد الترقية. |
| الاكتفاء بأن «النظام يفتح» | فروقات في الأرصدة تُكتشف بعد أشهر عند الإقفال. |
| تجاهل التكاملات | توقّف الربط مع أنظمة خارجية مثل البنوك أو فاتورة أو فسح بدون أن ينتبه أحد. |
| عدم إشراك المستخدمين في الاختبار | مقاومة للنظام الجديد وأخطاء في أول أسبوع. |
بعد الترقية
- تابع سجلات الأخطاء والمهام المجدولة يومياً في الأسبوعين الأولين.
- فعّل الربط مع منصة فاتورة إذا لم يكن مفعّلاً، فهو من أهم أسباب الترقية أصلاً.
- خطّط من الآن للترقية القادمة: الانتقال بين إصدارين متتاليين أسهل بكثير من القفز ستة إصدارات.
تفكّر في ترقية نظامك؟
نفّذت ترقية كاملة من Odoo 12 إلى 18 في بيئة إنتاج، مع تحويل الموديولات المخصصة والربط مع منصة فاتورة. أقدر أبدأ معك بفحص النظام الحالي وأعطيك خطة واضحة بالخطوات والمدة قبل أي التزام.
اطلب فحص نظامك واتساب