تحديثات
الترقية من ERPNext 15 إلى 16: دليل عملي آمن خطوة بخطوة
الترقية الآمنة من ERPNext 15 إلى 16 تتم على نسخة اختبار مستنسخة من الإنتاج أولاً، ثم في نافذة صيانة محددة على الإنتاج، مع نسخة احتياطية كاملة وخطة رجوع جاهزة. أهم تغيير تقني أن الإصدار 16، الذي صدر مستقراً في 12 يناير 2026، يتطلب Python 3.14 وNode 24، وأن بعض المزايا خرجت من نواة Frappe. يعرض هذا الدليل الخطوات بالترتيب كما نطبّقها مع المؤسسات في اليمن.
لماذا تترقّى؟ وما المخاطر الحقيقية؟
الإصدار 16 يضيف أدوات عملية مثل قوالب القوائم المالية ومراقبة سلامة الدفاتر وقواعد مطابقة البنوك وتقرير صحة النظام، وقد شرحناها في ما الجديد في Frappe وERPNext 16. كما أن البقاء طويلاً على إصدار قديم يجعل الترقية اللاحقة أصعب.
لكن المخاطر حقيقية ويجب تسميتها بوضوح:
- تطبيق مخصص أو تطبيق من طرف ثالث لا يعمل على الإصدار 16، فيتوقف جزء من العمل.
- سكربتات عميل أو خادم تعتمد على سلوك تغيّر، فتظهر أخطاء عند حفظ المستندات.
- قوالب طباعة تتغير مخرجاتها، كالفواتير والسندات الرسمية.
- ميزة كنت تعتمد عليها نُقلت خارج النواة، مثل المدونة أو النسخ الاحتياطي إلى Google Drive.
- توقف أطول من المتوقع إذا جرت الترقية مباشرة على الإنتاج دون تجربة.
المتطلبات الجديدة للخادم
يعتمد الإصدار 16 على Python 3.14 وNode 24، بينما عمل الإصدار 15 على إصدارات أقدم. هذا يعني عملياً:
- التحقق من أن نظام تشغيل الخادم يوفّر Python 3.14 أو يسمح بتثبيته بشكل نظيف، وقد يكون الأسهل تجهيز خادم أو بيئة جديدة.
- تحديث Node إلى الإصدار 24 لأن بناء ملفات الواجهة يعتمد عليه.
- مراجعة إصدار MariaDB ونظام التشغيل مقابل ما تذكره الوثائق الرسمية على docs.frappe.io قبل البدء.
- التأكد من مساحة القرص لأن النسخة الاحتياطية وبيئة الاختبار ستحتاجان مساحة إضافية.
هذا الجزء من عمل إدارة السيرفرات والاستضافة، ويُنجَز قبل لمس أي بيانات.
جرد التخصيصات والتطبيقات وفحص توافقها
قبل أي أمر تقني اكتب قائمة بكل ما أضفته على النظام الأساسي:
- التطبيقات المخصصة: كل تطبيق Frappe كتبته أنت أو مزوّدك، وهل له فرع للإصدار 16 أم يحتاج تعديلاً.
- تطبيقات الطرف الثالث: تحقق من وجود فرع متوافق مع الإصدار 16 لكل منها، فبعضها قد لا يتوفر له فرع بعد.
- سكربتات العميل والخادم: صدّر قائمتها وحدد ما يمسّ المستندات الحساسة كالفواتير والقيود.
- قوالب الطباعة: الفواتير والسندات والشهادات التي تُسلَّم للعملاء أو الجهات الرسمية.
- الحقول المخصصة وسير العمل والتقارير: لأنها جزء من عمليات يومية لا يجوز أن تنكسر.
- التكاملات: واتساب وبوابات الدفع وأي Webhooks أو REST API تستدعي النظام.
إذا ظهر تطبيق غير متوافق فلديك خياران: تأجيل الترقية، أو تعديل التطبيق. وهذا ما نقدّمه ضمن خدمة تخصيص ERPNext.
بيئة اختبار مستنسخة من الإنتاج
لا تُجرَّب الترقية على الإنتاج أبداً. جهّز بيئة اختبار (staging) منفصلة تحتوي نسخة حديثة من قاعدة بيانات الإنتاج وملفاته، بالتطبيقات نفسها وبالفروع نفسها. الهدف أن تكتشف المشاكل على بيانات حقيقية: الأصناف الحقيقية، والأرصدة الحقيقية، والصلاحيات الحقيقية.
اختر في المؤسسة من يختبر: محاسب يراجع القوائم المالية، وأمين مستودع يراجع الأرصدة، ومستخدم من كل قسم يجرّب عملياته اليومية. التجربة التقنية وحدها لا تكشف أن قالب الفاتورة صار يطبع رقماً في غير مكانه.
خطوات الترقية بالترتيب
- نسخة احتياطية كاملة: قاعدة البيانات مع الملفات العامة والخاصة، ونقلها إلى مكان خارج الخادم، والتحقق من أنها تُستعاد فعلاً.
- استنساخ الإنتاج إلى بيئة الاختبار وتجهيزها بـ Python 3.14 وNode 24.
- تحويل الفروع إلى الإصدار 16 في بيئة الاختبار لكل من Frappe وERPNext وكل تطبيق إضافي.
- تشغيل bench update ثم bench migrate في بيئة الاختبار أولاً، وقراءة أي خطأ في الترحيل وإصلاحه هناك.
- إعادة بناء ملفات الواجهة (assets) والتأكد من ظهور الواجهة والشريط الجانبي الجديد دون أخطاء.
- تشغيل الاختبارات: إنشاء فاتورة بيع وشراء وقيد يومية وتحويل مخزني وتشغيل سير عمل، وطباعة القوالب الأساسية.
- مقارنة التقارير الرئيسية قبل الترقية وبعدها: ميزان المراجعة، وأرصدة المخزون، وأعمار الذمم. يجب أن تتطابق الأرقام.
- تنفيذ الترقية على الإنتاج في نافذة صيانة معلنة للمستخدمين، بالخطوات نفسها التي نجحت في الاختبار، بعد نسخة احتياطية جديدة مباشرة.
خطة الرجوع
اكتب خطة الرجوع قبل البدء، لا أثناء المشكلة:
- حدّد معيار القرار: مثلاً إذا لم تتطابق أرصدة ميزان المراجعة أو تعذّر حفظ الفواتير خلال نافذة الصيانة، يُلغى التحويل.
- احتفظ بالبيئة القديمة على الإصدار 15 دون حذف حتى تستقر الترقية.
- جرّب استعادة النسخة الاحتياطية مسبقاً واعرف كم تستغرق على بياناتك.
- لا تسمح بإدخال بيانات جديدة أثناء نافذة الصيانة، حتى لا تضيع حركات عند الرجوع.
- اجعل شخصاً واحداً مسؤولاً عن قرار الرجوع، ووسيلة تواصل واضحة مع المستخدمين.
في اليمن حيث قد تنقطع الكهرباء أو الاتصال أثناء العمل، تأكد أن الترقية تجري على خادم بطاقة مستقرة، وأن جلسة العمل لا تنقطع بانقطاع اتصال جهاز المنفّذ. نراجع هذه الجوانب مع استضافة ERPNext وأمانه.
ما بعد الترقية
- System Health Report: راجعه في الأيام الأولى لرصد الطوابير المتأخرة والمهام الفاشلة والأخطاء.
- Permission Inspector: استخدمه عند أي شكوى من مستخدم لا يرى مستنداً، بدلاً من تعديل الأدوار عشوائياً.
- تدريب المستخدمين: على الشريط الجانبي الجديد وطريقة التنقل، بجلسة قصيرة لكل قسم.
- النسخ الاحتياطي: تأكد أنه يعمل على مستوى الخادم إذا كنت تعتمد سابقاً على تكامل خرج من النواة.
- مراقبة الأداء: راجع الاستعلامات البطيئة والفهارس المقترحة بعد أسبوع من الاستخدام الفعلي.
تعمل يمن فرابي على Frappe وERPNext منذ 2022، وتتولى هذه الخطوات كاملة أو جزءاً منها حسب ما يحتاجه فريقك في اليمن.
أسئلة شائعة
كم تستغرق الترقية من ERPNext 15 إلى 16؟
تعتمد المدة على حجم البيانات وعدد التطبيقات المخصصة والتخصيصات، وعلى عدد المشاكل التي تظهر في بيئة الاختبار. الجزء الأطول عادة هو الفحص والاختبار، أما نافذة الصيانة على الإنتاج فتكون أقصر لأنها تكرار لخطوات نجحت مسبقاً.
هل يمكن الترقية مباشرة على خادم الإنتاج؟
لا ننصح بذلك. شغّل bench update وbench migrate في بيئة اختبار مستنسخة من الإنتاج أولاً، ثم نفّذ الخطوات نفسها على الإنتاج في نافذة صيانة بعد نسخة احتياطية جديدة.
ماذا أفعل إذا لم يكن لتطبيقي المخصص فرع للإصدار 16؟
إما أن تؤجل الترقية حتى يتوفر الفرع المتوافق، أو أن تعدّل التطبيق ليعمل على الإصدار 16 وتختبره في بيئة الاختبار. لا تُرقِّ الإنتاج وفيه تطبيق لم يُختبر على الإصدار الجديد.
هل تضيع بياناتي عند الترقية إلى ERPNext 16؟
الترقية تُرحّل البيانات القائمة إلى البنية الجديدة ولا تحذفها، لكن أي خطأ أثناء الترحيل قد يترك النظام في حالة غير مكتملة. لذلك تبدأ كل ترقية بنسخة احتياطية كاملة مع الملفات، وبتجربة استعادتها، وبمقارنة التقارير الرئيسية بعد الترقية.