فشل التمهيد (Bootstrap) مع الخطأ التالي:
PG::UndefinedTable: ERROR: relation "ai_agent_mcp_servers" does not exist
فشل التمهيد (Bootstrap) مع الخطأ التالي:
PG::UndefinedTable: ERROR: relation "ai_agent_mcp_servers" does not exist
إذن، ها هو تقرير خطأ كتبته ask.discourse.com، ولكن أولاً، أود مشاركة هذا الجزء الذي قدمه:
قررت أن أتركها كما هي، وليست “صارمة وقصيرة”.
(لم أتدحرج على الأرض، لكنني ضحكت بصوت عالٍ حقًا.)
يبدو هذا تقريرًا موثوقًا به، وربما أفضل مما كنت سأكتبه.
إليك تقرير خطأ موجز يمكنك نشره على 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.
البيئة:
bundle exec rake db:migratediscourse-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” غير موجودة
إذا رغبت، يمكنني جعلها أكثر إيجازًا أو لاذعة.
يبدو أن هذه في الترتيب الصحيح…
هل ترى أي دليل في السجلات على أن الأول قد تم تنفيذه؟
(ملاحظة جانبية: أنا أفضل تقريرك الأصلي الذي كُتب بواسطة الإنسان في المنشور الأصلي. فهو يلتزم بالحقائق ولا يمتد لاستنتاجات قد تكون غير صحيحة)
أهلاً. إليك ما حدث. يبدو أن السبب هو أننا استخدمنا الذكاء الاصطناعي معًا وهو غبي وكسول. التفسير البديل هو أن الأمر مجرد سوء حظ، لكن يبدو أن كلود (وهو ما استخدمته أنا) لا يحصل على طابع زمني (ليس رائعًا، كلود)، بل فقط طابع تاريخي ثم يضيف عدادًا، لذا كنا نعمل كلاهما في نفس اليوم.
إليك آخر عمليات الهجرة التي تم تنفيذها:
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 غير قادر على التنفيذ.
وقد أصابني سوء الحظ بأن عملية هجرتي قد تم تنفيذها أولاً (من الأسهل تغيير شريحتي البرمجية بدلاً من شريحتك). أحاول الآن أن أرى ما إذا كان بإمكاني إعادة تسمية عمليات هجرتي في جدول الهجرة…
![]()
لدينا بالفعل هذا التوجيه في AI-AGENTS.md:
لكن يبدو أنه يتجاهله ![]()
@sam، هل استخدمت أي مهارة/مطلب محدد لإجراء هذه عمليات نقل discourse-ai؟ إذا استطعنا محاولة استخدام طوابع زمنية حقيقية بدلاً من أرقام مشبوهة التحديد تنتهي بـ 0000، فسيكون ذلك مفيدًا حقًا لتجنب التصادمات ![]()
وقد قمت بتشغيل هذا من مستودعك للاستفادة من معرفتك المتفوقة في مجال الذكاء الاصطناعي. والآن، أثبتت صحة افتراضي بأن فريقًا من الخبراء لا يمكنه أن يفعل أفضل مما فعلتُ أنا!
لذا، نعم، كلود، لماذا لا نستخدم generate migration؟
قمت بتغيير إصدار ملف الترحيل في قاعدة البيانات على النحو التالي:
UPDATE schema_migrations
SET version = '20260319001231'
WHERE version = '20260319000001';
ثم قمت بإعادة تسمية ملف الترحيل في ملحقي ليتطابق مع ذلك. وقد نجحت الخطة!
كان بإمكاني إلقاء اللوم على نفسي لعدم سحب التحديثات من الفرع الرئيسي لـ Discourse في كثير من الأحيان كما ينبغي، لكن الأمر حدث في نفس اليوم، لذا حتى لو قمت بذلك يوميًا، لما كان ذلك قد ساعد. أظن أنني يجب أن أسحب التحديثات من الفرع الرئيسي وأقوم بتشغيل عمليات الترحيل مرة أخرى قبل الدفع، ربما. لكنني لن أدع عملية ترحيل مثل هذه تحدث مرة أخرى.
شكرًا جزيلاً على مساعدتك. كانت هذه بالتأكيد حالة هامشية غريبة لم تكن لتحدث أبدًا لو لم نستخدم كلا الذكاء الاصطناعي في نفس اليوم.