لقد غيرت المضيف. قمت بنسخ احتياطي كامل (مع تفعيل خيار تضمين الصور المصغرة) من النسخة القديمة (أحدث إصدار من Discourse).
ثم قمت بتغيير عنوان IP للنطاق، وبعد ذلك قمت بتثبيت نسخة جديدة من Discourse أولاً (تثبيت كلاسيكي باستخدام Docker).
بعد ذلك، نسخت ملف النسخ الاحتياطي إلى /var/discourse/shared/standalone/backups/default واستعدته من النسخة الجديدة.
كل شيء سار على ما يرام، باستثناء أن المواضيع لا تحتوي على أي رسائل.
يبدو أن السجلات (Logs) سليمة. يمكنني تسجيل الدخول، وكل شيء طبيعي باستثناء أن المواضيع فارغة.
هل لديك أي فكرة؟ أين يجب أن أبحث إذا كانت هناك مشكلة؟ وماذا يجب أن أفعل الآن؟
تم فرض تفعيل إعداد CSP عند الاستعادة. كانت بعض مكونات القالب تعلن عن سكريبت باستخدام CDN. لم تكن هذه السكريبتات مدرجة في القائمة البيضاء، ولم تظهر رسائل الموضوع بسبب أخطاء في JS.
الأمان الإضافي مرحب به دائمًا، رغم أنني لا أتوقع أن يقوم Discourse بتغيير إعداد نسخة احتياطية. يمكنني فهم ذلك في حالات التثبيتات الجديدة، لكن ليس في حالة النسخة الاحتياطية. لم يكن الأمر مجرد مسألة نسخ احتياطي/استعادة، ولم يخطر ببالي التحقق من وحدة تحكم المتصفح في البداية. يجب أن أعترف أنني شعرت بإحباط كبير بسبب فقدان الكثير من الوقت والطاقة والنوم لمثل هذه المشكلة التافهة، خاصة وأن بناء Discourse يستغرق وقتًا طويلاً ومؤلمًا.
سأعتبر ذلك خطأً إذا قمت باستعادة النسخة الاحتياطية على نفس إصدار Discourse تمامًا. هل كان هذا هو الحال؟ عندما تستعيد نسخة احتياطية من إصدار أقدم من Discourse على إصدار أحدث من Discourse، يجب أن تتوقع أن يتصرف النظام بشكل مختلف.
هل أبلغت مؤلفي مكونات المظهر بمشكلات سياسة أمن المحتوى (CSP) بعد؟ قد يمنع ذلك على الأقل أشخاصًا آخرين من مواجهة نفس المشكلة.
من المرجح أن يكون أحدث، لأننا نقوم بالترقية فقط عند إصدار نسخة جديدة، وستقوم تثبيت مثيل جديد بجلب أحدث إصدار من test-passed.
على أي حال، سواء كان أقدم أو أحدث، إلا في حالات استثنائية جدًا، فإنني أرى أنه لا ينبغي تعديل الإعدادات الحالية بأي شكل من الأشكال. أيضًا، من نفس الإصدار الأساسي، أتوقع أن يكون لنسخة الاحتياطية الخاصة بي نفس السلوك. إذا لزم الأمر، على الأقل إظهار تحذير بمجرد الاتصال بـ Discourse (مثل: “تم تمكين إعداد CSP لأسباب أمنية”، كما تفهم) سيكون موضع ترحيب (أو أي نوع من التغييرات).
بـ"الأحدث"، كنت أقصد أحدث إصدار، وليس أحدث التزامات من فرع test-passed على GitHub.
لكن نعم، إنها نفس النسخة الأساسية 2.4.0.beta9.
نحن نتحدث فقط عن النسخة الاحتياطية وقيم الإعدادات فقط، لا غير ذلك. إصدار Discourse، وتغييرات قاعدة البيانات، وما إلى ذلك لا علاقة لها بالموضوع. لا أرى مبررًا واحدًا لتغيير قيمة إعداد من نسخة احتياطية دون إبلاغ المسؤول. أنت تقوم بتخصيص Discourse بتلك الإعدادات المحددة، فلا معنى لتغيير قيم إعداداتك بشكل تعسفي لمجرد أنك تستعيد نسخة احتياطية على إصدار أحدث من Discourse.
كما قيل، إذا كانت هناك حاجة لتغيير قيمة إعداد معين، فأنا أتوقع أن يخبرني Discourse المسؤول بما يحدث. الأمر يتعلق فقط بالشفافية وجعل حياة المسؤول أقل ألمًا. نقطتي هي أنه لا يجب أبدًا تغيير إعدادات المستخدم إلا لسبب وجيه جدًا، وإذا كان هناك سبب، فإن إبلاغ المسؤول بذلك أمر مقبول.