تخطي للذهاب إلى المحتوى

حل مشكلة Dependency في وحدات Odoo — دليل كامل

دليلك العملي لحل مشكلة تبعيات الإضافات في أودو: شرح مبسّط للأسباب الشائعة وخطوات إصلاح مجرّبة للمستخدمين والمطوّرين. ستجد هنا تفسيرًا واضحًا لما يعنيه خطأ التبعية، كيفية تتبّع الوحدة المسببة للمشكلة، وأدوات وحركات سريعة لإصلاحها — من تعديل ملف __manifest__ إلى تحديث قاعدة البيانات وإدارة البيئة الافتراضية. نصائح حول كيفية تجنب الخطأ في المستقبل، وفحص التوافق بين الإصدارات، وإرشادات لاختبار الحل قبل نشره في الإنتاج.
4 مارس 2026 بواسطة
Elisa Van Outrive
لا توجد تعليقات بعد

مقدمة


خطأ تبعية وحدة في أودو يظهر عندما يحاول النظام تثبيت أو ترقية وحدة لكن لا يجد أحد الوحدات المطلوبة أو تم تعريفها بشكل خاطئ أو لم تُثَبَّت.


يظهر هذا النوع من الأخطاء عادةً في الحالات التالية:

  • أثناء تثبيت وحدة جديدة
  • أثناء ترقية وحدة موجودة
  • أثناء ترحيل قاعدة البيانات
  • أثناء نشر وحدة مخصصة

عندما تكون التبعيات غير مضبوطة بشكل صحيح، يتوقف أودو لحماية قاعدة البيانات من حالات عدم التناسق.

يركز هذا الدليل على أسباب هذه الأخطاء وكيفية التعامل معها بطريقة عملية ومنهجية.



ما المقصود بعلاقة تبعية بين وحدات أودو؟


كل وحدة في أودو تحتوي ملف __manifest__.py وفيه حقل depends يعرض التبعيات:


{
    'name': 'My Custom Module',
    'depends': ['base', 'sale'],
}

بمعنى:

  • الوحدة تحتاج وجود وحدتي base و sale
  • أودو سيحاول تثبيتهما تلقائياً إن لم تكن موجودة
  • الوحدة تعتمد على نماذج وميزات هذه الوحدات الأساسية

إذا كانت أي تبعية مفقودة أو مكتوبة بشكل خاطئ، سيظهر خطأ تبعية.



أسباب شائعة لظهور أخطاء تبعيات الوحدات في أودو



1. وحدة مطلوبة مفقودة

إذا كانت وحدتك تعتمد على وحدة غير مثبّتة، فلن يقدر أودو على متابعة التثبيت.

مثال توضيحي:

'depends': ['stock']

وفي حال عدم وجود stock → يفشل التثبيت.


2. اسم وحدة خاطئ في الملف

أحياناً المشكلة ببساطة أن اسم الوحدة في __manifest__ غير صحيح:

'depends': ['sales']

عوضاً عن:

'depends': ['sale']

أودو حينها لن يعثر على الوحدة وسيعطي خطأ.


3. تبعيات دائرية

مثل الحالة التي:

  • الوحدة أ تعتمد على الوحدة ب
  • والوحدة ب تعتمد على الوحدة أ

لا يستطيع أودو حينها تحديد ترتيب التثبيت.

التبعيات الدائرية تؤدي إلى فشل التثبيت.


4. وحدة مخصصة ليست داخل مسار الإضافات

لو كانت التبعية لوحدة مخصصة لكن ملفاتها خارج المجلدات المدرجة في addons_path، فلن يكتشفها أودو.


5. الوحدة مثبتة لكن لم تُحمَّل بشكل صحيح

في حال فشل تثبيت سابق أو كان التثبيت جزئياً، قد يعتبر النظام الوحدة غير متاحة.


6. اختلاف إصدار بين الوحدات

إذا صُمِّمت وحدة مخصصة لإصدار مختلف من أودو، قد تظهر تعارضات عند التثبيت أو الترقية.


 

كيفية إصلاح خطأ تبعية وحدة في أودو



الخطوة 1 – اقرأ رسالة الخطأ بعناية

رسالة الخطأ عادةً تحدد اسم التبعية المفقودة أو المشكلة الأساسية.

مثال توضيحي:

مثال: ModuleNotFoundError: No module named 'stock'

أو:

Unmet dependencies: sale_management


الخطوة 2 – تحقق من ملف __manifest__

افتح __manifest__.py وتأكد من الأمور التالية:

  • أسماء الوحدات التقنية صحيحة
  • التهجئة سليمة
  • لا أخطاء نحوية أو فاصلة زائدة

قارن الأسماء بالأسماء التقنية الرسمية في تثبيت أودو لديك.


الخطوة 3 – ثبّت التبعيات المفقودة

اذهب إلى:

التطبيقات → ابحث عن الوحدة المفقودة → تثبيت

أما إن كانت وحدة مخصصة فتأكد من أنها:

  • موجودة داخل مجلد addons
  • مدرجة في متغير addons_path
  • مرئية في واجهة التطبيقات

الخطوة 4 – أعد تشغيل سيرفر أودو

بعد تصحيح التبعيات:

  • أعد تشغيل الخدمة
  • حدّث قائمة التطبيقات
  • وحاول تثبيت الوحدة مرة أخرى

الخطوة 5 – تجنّب التبعيات الدائرية

إذا اكتشفت تبعية دائرية:

  • انقل المنطق المشترك إلى وحدة ثالثة مستقلة
  • أزل التبعيات المتبادلة غير الضرورية

يجب أن تكون العلاقات بين الوحدات هرمية وواضحة


الخطوة 6 – تأكد من إعدادات addons_path

افحص ملف ضبط أودو:

addons_path = /path/to/odoo/addons,/path/to/custom/addons

وتأكد أن كل الوحدات المطلوبة داخل هذه المجلدات.



كيف تمنع أخطاء تبعيات الوحدات



  • نصائح عملية:
  • أعلن عن التبعيات بشكل صريح في manifest
  • حافظ على بنية وحدات نظيفة ومقسمة
  • تجنب الدورات في التبعيات
  • استخدم الأسماء التقنية الصحيحة للوحدات
  • اختبر التثبيت في بيئة staging قبل الإنتاج

وثّق علاقات الوحدات المخصصة بوضوح



كيف ترتب Dasolo التبعيات بشكل نظيف في الوحدات


أخطاء تبعية الوحدات غالباً ما تكشف عن هياكل غير مرتبة أو تبعيات مخفية بين مكونات مخصصة. كلما نما نظام أودو بلا إدارة للتبعيات، زادت احتمالات فشل التثبيت أو الترقية.


في Dasolo نتعامل مع هذه المشكلات عبر سياسات واضحة:

  • تعريف التبعيات بشكل صريح ومقروء
  • تحديد حدود واضحة لكل وحدة
  • تقليل الترابط بين الوحدات لأدنى حد
  • منع الإشارات الدائرية بين الوحدات
  • توثيق منظم للمكونات المخصصة

معمارية تبعيات مرتبة تعطي نتائج متوقعة أثناء التثبيت وتسهّل صيانة المشاريع الطويلة الأمد في أودو.



خاتمة


خلاصة القول: يحدث خطأ "تبعية وحدة أودو" عندما تكون وحدات لازمة مفقودة أو مُعلنة بشكل خاطئ أو متعارضة أثناء تثبيت أو ترقية. بالرغم من أن النظام عادة يبيّن التبعيات الناقصة، السبب الجذري غالباً يتعلق بتصميم وحدات ضعيف.


ممارسات بسيطة مثل مراجعة ملفات manifest، تنظيم الهياكل الوحدوية، والتحقق من التبعيات قبل النشر تمنع تكرار المشاكل. بنية وحدات منظمة هي شرط أساسي لبيئة أودو مستقرة وقابلة للتوسع.




Elisa Van Outrive 4 مارس 2026
شارك هذا المنشور
تسجيل الدخول حتى تترك تعليقاً