لقد حاولت للتو ترقية تثبيت Discourse الخاص بي إلى أحدث إصدار تجريبي (2.4.0 beta 11) عبر التحديث عبر الويب، والآن أصبح غير متاح (جرب بنفسك، حيث يعيد أخطاء HTTP 500).
السياق
كان الإصدار المثبت لدي لا يزال 2.4.0 beta 6، وكنت أحاول الترقية إلى 2.4.0 beta 11.
أعتقد أن التثبيت كان قياسيًا إلى حد كبير، ولا أتذكر ما إذا كان لدي أي إضافات مخصصة (ولا يمكنني التحقق من ذلك الآن)، لكن على الأكثر 1-2. لقد احتفظت بمعظم إعدادات Discourse الافتراضية.
ما فعلته
نقرت على رابط التحديث عبر المتصفح بضغطة واحدة في رسالة البريد الإلكتروني الخاصة بتنبيه التحديث التي تلقيتها، مما قادني إلى /admin/upgrade.
وفقًا لبرنامج التحديث عبر الويب، كان علي أولاً إجراء تحديث لـ docker manager قبل أن أتمكن من تحديث إصدار Discourse الفعلي، لذا اخترت ذلك. مرّت بعض العمليات، وبعد حوالي نصف شريط التقدم، ظهرت رسالة فوق شاشة إخراج سجل الويب تشير إلى حدوث خطأ أثناء التحديث وأنه يجب علي التحقق من السجلات. تصفحت السجلات ولكن لم يلفت انتباهي أي شيء مباشرة. للأسف، لم أتمكن من حفظ السجل وبدلاً من ذلك أعيدت تحميل الصفحة فقط، على أمل أن أتمكن من إعادة محاولة التثبيت، مفترضًا أن الفشل قد تسبب في التراجع عن التحديث ببساطة.
من المثير للاهتمام، أن صفحة admin/upgrade/ أخبرتني بعد ذلك أن docker_manager محدثة ولا تحتاج إلى تحديث بعد الآن، لذا افترضت (على الأرجح بشكل خاطئ) أن التحديث قد نجح بالفعل وأن رسالة الخطأ كانت خطأً برمجيًا. كما تحققت مما إذا كان المنتدى لا يزال يعمل، وكان كذلك ولم يبدو أن هناك أي مشاكل.
تم عرض خيار ترقية تثبيت Discourse نفسه (الذي كان معطلاً سابقًا)، ففعلت ذلك. مرة أخرى، تم تسجيل العمليات في إخراج السجل، ولم أ prestar الكثير من الاهتمام، وبعد ملء حوالي نصف شريط التقدم، تم عرض رسالة خطأ مماثلة فوق إخراج السجل حول حدوث خطأ ما.
تخيلت أن أفعل نفس ما فعلته من قبل، أعيد تحميل الصفحة (مرة أخرى، للأسف لم أحفظ السجل). وعلى النحو المتوقع، تم الآن إدراج Discourse على أنها “محدثة”.
هذا ما أراه حاليًا تحت admin/upgrade/:
لكن المنتدى الفعلي لا يعمل anymore ويعيد أخطاء 500 فقط.
ما لا يزال يعمل
/admin/upgrade/لا يزال يعمل ويعرض أن Discourse محدثة.- يمكنني أيضًا النقر على علامة التبويب “Processes” والحصول على قائمة بالعمليات قيد التشغيل.
ولكن حتى علامة التبويب Backups تعيد خطأ 500 بالفعل، وكذلك /admin. لم أجد أي جزء من المنتدى يعمل باستثناء علامتي التبويب تحت /admin/upgrade/.
كيفية الاستعادة؟
ليس لدي فكرة جيدة عما حدث خطأ، ولا أعرف أيضًا من أين أبدأ. لا أعرف حتى كيفية الوصول إلى السجلات لمعرفة ما كان الخطأ دون استخدام واجهة الويب. يتم استضافة تثبيت Discourse على Digital Ocean ويمكنني الاتصال بالمachine عبر ssh وربما الحاوية، لكنني لا أعرف أين أبحث عن السجلات.
سيكون تقديم تلميح حول مكان البحث عن السجلات موضع تقدير كبير.
لحظة، أفضل فكرة لدي هي العودة إلى نسخة احتياطية وفقدان أي منشورات تم نشرها بعد آخر نسخة احتياطية (لحسن الحظ لا يوجد كثير من حركة المرور، لذا فإن فقدان يوم من المحتوى مقبول).
خطتي الحالية وما ينقصني
لقد قمت بإعداد Digital Ocean لإجراء نسخ احتياطية أسبوعية من Droplet، وأعتقد أن تثبيت Discourse الخاص بي كان مهيأً للنسخ الاحتياطي اليومي. لم قمت بتكوين S3، لذا يجب أن تكون تلك النسخ محفوظة محليًا. ومع ذلك، فإن نسخة Droplet الاحتياطية من Digital Ocean قديمة بخمسة أيام، لكنني أفضل عدم فقدان محتوى الأيام القليلة الماضية.
خطتي التقريبية هي في الأساس العودة عبر النسخ الاحتياطية إلى حالة معروفة بأنها تعمل حاليًا عن طريق القيام بما يلي:
- تنزيل نسخة Discourse الاحتياطية من اليوم/أمس.
- التراجع عن كامل Droplet عبر Digital Ocean إلى آخر نسخة احتياطية من قبل 5 أيام، حتى أعود إلى تثبيت Discourse يعمل مرة أخرى.
- استيراد النسخة الاحتياطية التي تم تنزيلها لاستعادة المحتوى (باستثناء ما حدث بعد آخر نسخة احتياطية لـ Discourse).
يمكنني القيام بالتراجع عبر DO (الخطوة 2) وسأفهم كيفية استيراد النسخة الاحتياطية الموجودة عندما أصل إلى هناك (الخطوة 3)، لكنني لا أعرف كيفية الوصول إلى النسخة الاحتياطية دون استخدام واجهة الويب ومع /admin/backups/ يعيد أخطاء HTTP 500.
أين يجب أن أبحث لإيجاد النسخة الاحتياطية عبر SSH/ماذا أحتاج لأكون قادرًا على استعادتها بعد التراجع إلى نسخة Droplet القديمة عبر DO؟
عند البحث في المنتديات، وجدت فقط مواضيع حول استضافة النسخ الاحتياطية على S3، وليس أين تكون عندما يتم تخزينها محليًا.

