أود الترقية إلى أحدث إصدار، لكنني أواجه بعض المشكلات مع بعض مكونات السمة (theme).
كلها مكونات من إنشاءاتي الخاصة، وقد نقلتها من GitHub إلى GitLab. الآن، عندما أحاول ترقية Discourse (وليس من داخل Discourse)، تظهر أخطاء لأنها لم تعد متاحة. حاولت حذفها داخل Discourse، لكنها لا تُحذف.
السؤال الآن: أين المسار لحذفها مباشرة على الخادم؟ لا أستطيع العثور عليها.
جربت وضع السلامة (safe-mode) لكنني لا أستطيع الوصول إلى المنتدى في هذا الوضع.
تعديل:
هل يوجد ملف مشابه لملف app.yml يحتوي على قائمة جميع السمات والمكونات، بحيث يمكنني حذف القائمة وإعادة بناء Discourse دونها؟
أعتقد أن هذه هي المشكلة التي تحتاج إلى حلها. الطريقة الصحيحة للتعامل مع هذا الأمر هي حذف جميع السمات ومكونات السمات التي تأتي من الموقع القديم، واستيراد سمة جديدة من مواقعها الجديدة.
هذا غير ممكن لأن discourse يدخل في حلقة لا نهائية. هذا هو السبب في أنني سألت عن طريقة أخرى لحذفها.
لا أستطيع حتى الدخول إلى الوضع الآمن.
إعادة التثبيت غير ممكنة أيضًا لأن النسخة الاحتياطية قديمة جدًا.
بعد تشغيل ./launcher rebuild app، لاحظت أن المنتدى غير متاح للزوار.
أعتقد أن تعطيل المكونات يدويًا في قاعدة البيانات هو نوع من الحلول الذي يمكن اعتباره الملاذ الأخير هنا. إنه إجراء محفوف بمخاطر عالية، لكنه قابل للتنفيذ إذا لم تكن هناك خيارات أخرى.
على الأقل، سيؤدي تعطيل المكونات إلى السماح بإكمال عملية إعادة البناء بنجاح، مما يتيح بدورها الوصول إلى واجهة المسؤول لإزالة المكونات وإعادة تثبيتها من GitLab.
لم يتم تخزينها في قاعدة البيانات، ومع ذلك، فإن حالة التفعيل/إلغاء التفعيل الخاصة بها مخزنة في قاعدة البيانات نفسها.
لا أتذكر الخطوات بالضبط، لكنني قمت مؤخرًا بإصلاح تثبيت معطوب بشكل مماثل.
الأهم هنا هو معرفة ما إذا كان الحاوية لا تزال قيد التشغيل. إذا كانت قيد التشغيل، فقد أتمكن من تقديم نصيحة حول كيفية محاولة تعطيل المكونات المسببة للمشكلة من قاعدة البيانات.
حسنًا، هذا يمثل مشكلة.
أليس من الممكن استخدام شيء مثل pgAdmin للوصول إلى قاعدة البيانات مباشرةً؟
لا أعرف معرف السمة والمكونات لأنني لم أعد أملك حق الوصول إلى منطقة الإدارة.
تعديل:
تمكنت من تحديد السمة والمكونات.
لكن تعطيلهما لا يعمل، فكيف يمكنني حذفهما باستخدام rails c؟
لقد حاولت حتى إزالتها عبر rake، لكن rake لم يستطع حذفهما أيضًا.
rake themes:uninstall https://github.com/link/to/git.git
rake aborted!
لا نعرف كيفية بناء المهمة 'themes:uninstall' (راجع قائمة المهام المتاحة باستخدام `rake --tasks`)
هل تقصد؟ themes:install
/usr/local/bin/bundle:23:in `load'
/usr/local/bin/bundle:23:in `<main>'
(راجع التتبع الكامل بتشغيل المهمة مع --trace)
أو ما هو الأمر الصحيح لحذف الأشياء باستخدام rake؟
أحصل على قائمة بالأوامر باستخدام rake --tasks و rake -AT، لكن لا يوجد أمر لحذف سمة أو مكون.
باستخدام rails c يمكنني تعطيل سمة، لكن بعد إعادة التحميل تظهر السمة التالفة القديمة مرة أخرى.
لقد فكّرتُ في هذا الأمر لفترة أيضًا، ورأيي هو أن هذا منطقي لبعض المجتمعات وليس للكل. بعض المجتمعات تعامل تخصيصاتها أو سماتها (themes) كجزء جوهري من هوية الموقع، ويريدون حقًا معرفة ما إذا كانت هناك مشاكل في تخصيصاتهم عند نشر موقعهم. بينما تستخدم مجتمعات أخرى تثبيتًا قياسيًا لـ Discourse مع بعض التخصيصات أو المكونات المضافة فوقه، ويمكنهم العيش بسهولة لعدة أيام دونها.
ربما يجب أن تكون خانة الاختيار التحديث التلقائي عند تحديث Discourse غير محددة افتراضيًا عند تثبيت سمة أو مكون جديد؟ هي حاليًا محددة افتراضيًا، وأعتقد أنه يجب أن تكون غير محددة، لكن هذا يحتاج إلى نقاش أوسع…
لا، فإن مقتطف الكود أعلاه (السطر الثاني على وجه الخصوص) يعطل التحديث التلقائي عند النشر لجميع السمات/المكونات المثبتة حاليًا، لذا يجب أن يصلح أي بناء مكسور بسبب التحديث التلقائي للسمات بما في ذلك أخطاء JavaScript/CSS. يجب أن يتضمن دليل howto السطر الثاني فقط.
لقد واجهتُ هذه المشكلة للتو أيضًا. إذا كان لديك مكون مرتبط بمستودع عام ثم قمت بجعله خاصًا، فإن عمليات إعادة البناء ستفشل. الأمر غير مريح لأن المستخدمين يمكنهم إجراء تغييرات قد تعطل الموقع لمديري الأنظمة بعد أشهر.