إضافة الوثائق - موضوع الفهرس لا يعمل بعد الاستعادة

قبل بضعة أشهر قمت بتثبيت Discourse، وأضفت بعض المواضيع كموضوع فهرس (Index Topic) في قسم وضع التوثيق (Documentation Mode). كل شيء عمل كما هو متوقع.
قمت بعمل نسخة احتياطية لكل شيء، وحذفت حساب Digital Ocean، إلخ.

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

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

يبدو أنه في عملية الاستعادة، هناك شيء ما يكسر وضع التوثيق لسبب ما.

فقط أتحقق - هل رأيت هذا؟

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

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

لذا، سؤالي هو: هل مهمة rake task هذه شيء أحتاج إلى القيام به في كل مرة أقوم فيها بتحديث Discourse؟ أم فقط عند الاستعادة (إذا قمت بذلك مرة أخرى في المستقبل)؟

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

أتساءل فقط - لماذا لم يتم تنفيذ هذا كترحيل (migration)؟

مما أتذكره في ذلك الوقت - لا يمكن أن تكون هجرة. الهجرات من الناحية المثالية لا تلمس كود التطبيق (لأن الكود يمكن أن يبتعد عن وقت نية الهجرة ويؤدي إلى خطأ).

الـ PR يشير أيضًا إلى السبب:

يتضمن هذا الـ PR أيضًا مهمة rake (doc_categories.rake) لإعادة بناء أقسام وشروحات الشريط الجانبي من مواضيع فهرس الوثائق النشطة - لا يوصى بهذا بالضبط للقيام به في هجرة لأنه سيتضمن إما استخدام المحلل أو nokogiri (التي يمكن أن تختلف تطبيقاتها وتسبب هجرة غير صالحة).

إعجابَين (2)

إذًا، إذا فهمت الأمر بشكل صحيح، من الآن فصاعدًا، لست بحاجة إلى القيام بأي من ذلك؟ مهمة الـ rake أو عملية إعادة الربط، كلما قمت بتحديث Discourse؟

أريد فقط التأكد من أنني فهمت الأمر.

نعم. لقد كانت مجرد لمرة واحدة.

3 إعجابات

رائع! شكرًا لك على التوضيح! :raising_hands:

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