خطأ في التمهيد: العلاقة "ai_agent_mcp_servers" غير موجودة

فشل التمهيد (Bootstrap) مع الخطأ التالي:

PG::UndefinedTable: ERROR:  relation "ai_agent_mcp_servers" does not exist

إذن، ها هو تقرير خطأ كتبته ask.discourse.com، ولكن أولاً، أود مشاركة هذا الجزء الذي قدمه:

قررت أن أتركها كما هي، وليست “صارمة وقصيرة”. :rofl: (لم أتدحرج على الأرض، لكنني ضحكت بصوت عالٍ حقًا.)

يبدو هذا تقريرًا موثوقًا به، وربما أفضل مما كنت سأكتبه.

تقرير خطأ من ask . . .

إليك تقرير خطأ موجز يمكنك نشره على Meta:

بعد التحديث، يفشل bootstrap أثناء `db:migrate` مع:

```text
PG::UndefinedTable: ERROR:  relation "ai_agent_mcp_servers" does not exist

الهجرة الفاشلة هي:

/plugins/discourse-ai/db/migrate/20260319070000_add_selected_tool_names_to_ai_agent_mcp_servers.rb

يبدو أن هذه الهجرة تحاول إضافة عمود إلى ai_agent_mcp_servers قبل وجود الجدول.

الجزء ذو الصلة من السجل:

== 20260319070000 AddSelectedToolNamesToAiAgentMcpServers: migrating ==========
PG::UndefinedTable: ERROR:  relation "ai_agent_mcp_servers" does not exist
...
/var/www/discourse/plugins/discourse-ai/db/migrate/20260319070000_add_selected_tool_names_to_ai_agent_mcp_servers.rb:5

يبدو هذا كمشكلة في ترتيب الهجرات في discourse-ai، أو هجرة سابقة مفقودة كان ينبغي أن تنشئ ai_agent_mcp_servers.

البيئة:

  • تثبيت Docker رسمي
  • يفشل bootstrap عند تشغيل bundle exec rake db:migrate
  • تشمل الإضافات المذكورة في السجلات discourse-citationwizard و discourse-prometheus

التقرير الكامل / السجلات:
خطأ في Bootstrap: العلاقة “ai_agent_mcp_servers” غير موجودة

كان علي أن أعرف كيف سأبدو. . . .

بالتأكيد — إليك نسخة أكثر أسلوب بفافمان:

يبدو هذا وكأنه خطأ في ترحيل `discourse-ai`.

يتعطل Bootstrap في:

```text
/plugins/discourse-ai/db/migrate/20260319070000_add_selected_tool_names_to_ai_agent_mcp_servers.rb

مع:

PG::UndefinedTable: ERROR:  relation "ai_agent_mcp_servers" does not exist

إذن، يحاول هذا الترحيل تعديل جدول لم يتم إنشاؤه بعد.

سجل ذو صلة:

== 20260319070000 AddSelectedToolNamesToAiAgentMcpServers: migrating ==========
PG::UndefinedTable: ERROR:  relation "ai_agent_mcp_servers" does not exist
...
/var/www/discourse/plugins/discourse-ai/db/migrate/20260319070000_add_selected_tool_names_to_ai_agent_mcp_servers.rb:5

يبدو أن الأمر إما:

  • أن ترتيب الترحيلات خاطئ، أو
  • أن الترحيل الذي ينشئ ai_agent_mcp_servers مفقود أو لم يتم اكتشافه.

التقرير الأصلي والسجلات الكاملة:
خطأ في التمهيد: العلاقة “ai_agent_mcp_servers” غير موجودة


إذا رغبت، يمكنني جعلها أكثر إيجازًا أو لاذعة.

يبدو أن هذه في الترتيب الصحيح…

هل ترى أي دليل في السجلات على أن الأول قد تم تنفيذه؟

(ملاحظة جانبية: أنا أفضل تقريرك الأصلي الذي كُتب بواسطة الإنسان في المنشور الأصلي. فهو يلتزم بالحقائق ولا يمتد لاستنتاجات قد تكون غير صحيحة)

إعجابَين (2)

أهلاً. إليك ما حدث. يبدو أن السبب هو أننا استخدمنا الذكاء الاصطناعي معًا وهو غبي وكسول. التفسير البديل هو أن الأمر مجرد سوء حظ، لكن يبدو أن كلود (وهو ما استخدمته أنا) لا يحصل على طابع زمني (ليس رائعًا، كلود)، بل فقط طابع تاريخي ثم يضيف عدادًا، لذا كنا نعمل كلاهما في نفس اليوم.

إليك آخر عمليات الهجرة التي تم تنفيذها:

   up     20260316000001  Create discourse citationwizard openalex api keys
   up     20260316000002  Create discourse citationwizard api key daily snapshots
   up     20260316071735  Rename automation api key scope resource
   up     20260316071736  Rename ai api key scope resource
   up     20260316071737  Rename data explorer api key scope resource
   up     20260319000000  ********** NO FILE **********
   up     20260319000001  Create discourse citationwizard user lookup events
   up     20260319000002  Create discourse citationwizard citation wizard sessions
   up     20260319033623  ********** NO FILE **********
   up     20260319055039  ********** NO FILE **********

وقد قام discourse-citationwizard (الذي يدعم https://www.citationwizard.net/، وهو أداة استشهاد/مرجع للأكاديميين) بإجراء عملية هجرة في نفس اليوم. ظننت أن عملية الهجرة هذه تبدو مشبوهة، لكن لم يخطر ببالي أن تكون هناك آثار مثل هذه…

لذلك هذا هو السبب الذي يجعل plugins/discourse-ai/db/migrate/20260319000001_create_ai_agent_mcp_servers.rb غير قادر على التنفيذ.

وقد أصابني سوء الحظ بأن عملية هجرتي قد تم تنفيذها أولاً (من الأسهل تغيير شريحتي البرمجية بدلاً من شريحتك). أحاول الآن أن أرى ما إذا كان بإمكاني إعادة تسمية عمليات هجرتي في جدول الهجرة…

:facepalm:

لدينا بالفعل هذا التوجيه في AI-AGENTS.md:

لكن يبدو أنه يتجاهله :person_shrugging:

@sam، هل استخدمت أي مهارة/مطلب محدد لإجراء هذه عمليات نقل discourse-ai؟ إذا استطعنا محاولة استخدام طوابع زمنية حقيقية بدلاً من أرقام مشبوهة التحديد تنتهي بـ 0000، فسيكون ذلك مفيدًا حقًا لتجنب التصادمات :thinking:

إعجاب واحد (1)

وقد قمت بتشغيل هذا من مستودعك للاستفادة من معرفتك المتفوقة في مجال الذكاء الاصطناعي. والآن، أثبتت صحة افتراضي بأن فريقًا من الخبراء لا يمكنه أن يفعل أفضل مما فعلتُ أنا!

لذا، نعم، كلود، لماذا لا نستخدم generate migration؟

قمت بتغيير إصدار ملف الترحيل في قاعدة البيانات على النحو التالي:

UPDATE schema_migrations 
SET version   = '20260319001231' 
WHERE version = '20260319000001';

ثم قمت بإعادة تسمية ملف الترحيل في ملحقي ليتطابق مع ذلك. وقد نجحت الخطة!

كان بإمكاني إلقاء اللوم على نفسي لعدم سحب التحديثات من الفرع الرئيسي لـ Discourse في كثير من الأحيان كما ينبغي، لكن الأمر حدث في نفس اليوم، لذا حتى لو قمت بذلك يوميًا، لما كان ذلك قد ساعد. أظن أنني يجب أن أسحب التحديثات من الفرع الرئيسي وأقوم بتشغيل عمليات الترحيل مرة أخرى قبل الدفع، ربما. لكنني لن أدع عملية ترحيل مثل هذه تحدث مرة أخرى.

شكرًا جزيلاً على مساعدتك. كانت هذه بالتأكيد حالة هامشية غريبة لم تكن لتحدث أبدًا لو لم نستخدم كلا الذكاء الاصطناعي في نفس اليوم.

إعجابَين (2)