ترقية إلى الإصدار v3.5.3 تسبب في ظهور مشكلة في صفحة المشرف

بعد الترقية من الإصدار v3.5.2 إلى v3.5.3، ظهرت مشكلة في صفحة المشرف

وظهر الخطأ التالي

loader.js:247 Uncaught (in promise) Error: Could not find module discourse/admin/models/admin-plugin imported from discourse/plugins/docker_manager/discourse/models/repo
at loader.js:247:1
at a (loader.js:258:1)
at s.findDeps (loader.js:168:1)
at a (loader.js:262:1)
at s.findDeps (loader.js:168:1)
at a (loader.js:262:1)
at requireModule (loader.js:24:1)
at n.i [as getRoute] (index.ts:121:18)
at p._getQPMeta (index.ts:101:20)
(anonymous) @ loader.js:247
a @ loader.js:258
(anonymous) @ loader.js:168
a @ loader.js:262
(anonymous) @ loader.js:168
a @ loader.js:262
requireModule @ loader.js:24
i @ index.ts:121
_getQPMeta @ index.ts:101

بعد تعطيل الإضافات (plugins) عادت الأمور طبيعية، ولكن لا يمكنني تحديد الإضافة التي تسببت في المشكلة. هل يمكنكم مساعدتي في التحقق؟

تستمر المشكلة عند تعطيل “تعطيل إضافات العميل غير الرسمية” في الوضع الآمن، ولكنها تعمل بشكل طبيعي عند تعطيل “تعطيل جميع إضافات العميل”.

لم يعد الإصدار 3.5.3 مدعومًا. يرجى الاطلاع على https://releases.discourse.org.

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

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

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

هل هناك إصدار موصى به للترقية إليه؟ هل الترقية عبر العديد من الإصدارات ستسبب المزيد من مشاكل التوافق؟

فشل التحديث مباشرة بعد الترقية إلى 2026.1.1

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

تحقق من /logs الخاص بك بحثًا عن رسائل مشبوهة.

إعجابَين (2)

إذا فشل الترقية عبر الويب، فستحتاج إلى استخدام ssh لتسجيل الدخول كجذر وتنفيذ ترقية عبر سطر الأوامر.

هل يمكنك تجربة إعادة بناء من سطر الأوامر كما يقترح الرد أعلاه؟ من المحتمل أن يؤدي ذلك إلى إصلاحه، لم أر قط مشكلة ناتجة عن تخطي الإصدارات..

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

ما هو الأمر المحدد من فضلك؟ خدمتي مجمعة في صورة Docker ثم تم نشرها في مجموعة k8s على خادم بعيد. تم استخدام طريقة النشر web_only.

بالإضافة إلى ذلك، عند حدوث خطأ في صفحة المسؤول، يظهر الخطأ التالي:

اذهب إلى المكان الذي قمت فيه بتثبيت Discourse واكتب ./launcher rebuild app - أينما يوجد discourse_docker. أعتقد أن /var/discourse هو المكان “الموصى به” لوضع البرنامج النصي ولكنه قد يكون مختلفًا بالنسبة لك.

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

3 إعجابات

يبدو أن ترحيل قاعدة البيانات فشل. ظهر الخطأ التالي.

TOP => db:migrate => assets:precompile:asset_processor │
│ full trace by running task with --trace) │
│ executing /etc/runit/1.d/00-ensure-links │
│ executing /etc/runit/1.d/01-cleanup-web-pids │
│ executing /etc/runit/1.d/anacron │
│ executing /etc/runit/1.d/cleanup-pids │
│ stale PID files │
│ executing /etc/runit/1.d/copy-env │
│ runsvdir, PID is 1126 │
│ aborted! │
│ pnpm -C=frontend/asset-processor node build.js (Discourse::Utils::CommandError) │
│ Failed to switch pnpm to v10.28.0. Looks like pnpm CLI is missing at “/home/discourse/.local/share/pnpm/.tools/pnpm/10.28.0/bin” or is incorrect │
│ /home/discourse/.local/share/pnpm/.tools/pnpm/10.28.0/bin/pnpm EACCES

عندما تحققت من مسار pnpm المحدد، وجدت أن المسار موجود، ولكن ملف pnpm.cjs يفتقر إلى أذونات التنفيذ، مما تسبب في حدوث الخطأ.

drwxrwxrwx root root /
drwxr-xr-x root root home
drwxr-x— discourse discourse discourse
drwxr-x— discourse discourse .local
drwxr-x— discourse discourse share
drwxr-x— discourse discourse pnpm
drwxr-x— discourse discourse .tools
drwxr-x— discourse discourse pnpm
lrwxrwxrwx discourse discourse 10.28.0 → 10.28.0_tmp_9_0
drwxr-x— discourse discourse 10.28.0_tmp_9_0
drwxr-x— discourse discourse bin
lrwxrwxrwx discourse discourse pnpm → ../node_modules/pnpm/bin/pnpm.cjs
drwxr-x— discourse discourse ..
drwxr-x— discourse discourse node_modules
drwxr-x— discourse discourse pnpm
drwxr-x— discourse discourse bin
-rw-r----- discourse discourse pnpm.cjs

لاحقًا، بعد أن قمت بتثبيت إصدار pnpm المقابل مسبقًا باستخدام corepack في الصورة، نجح ترحيل قاعدة البيانات. الخدمة تعمل الآن بشكل طبيعي.

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