هل جربت تثبيتًا جديدًا بدون استعادة ولكن مع الاتصال بقاعدة بيانات الواجهة الخلفية الحالية لديك؟
أعتقد أن هذا يعني احتمال فقدان أي إعدادات تم إجراؤها في واجهة المستخدم ولم يتم حفظها في قاعدة البيانات؟ لست متأكدًا مما هو آخر تم نسخه احتياطيًا واستعادته.
أسمعك بوضوح بشأن مزايا التثبيت القياسي والطبيعة المستقلة وغير المصرح بها لمخطط Bitnami Helm. لم أقصد التلميح إلى أن الخطأ يكمن في Discourse نفسه. استمر اختياري لاستخدام Bitnami في الاعتماد على حساب يقارن تكلفة استكشاف الأخطاء وإصلاحها مع مخطط Bitnami وتكلفة تطوير مخطط Helm الخاص بي المكافئ بناءً على التثبيت المدعوم رسميًا ثم استكشاف الأخطاء وإصلاحها معه.
لقد نظرت في ذلك، لكنني أحاول تجنب التعديلات على إعدادات المخطط الافتراضي للبقاء “على المسار الرئيسي”. ومع ذلك، حاولت ترقية خادم Discourse فقط إلى الإصدار 3.2.0 عن طريق تجاوز علامة صورة النشر (Deployment image tag)، مع الاحتفاظ بقاعدة البيانات الحالية، لمعرفة ما إذا كانت عملية الترحيل ستنجح؛ إلا أنها فشلت.
لقد حاولت إسقاط قاعدة البيانات واستعادتها يدويًا عبر kubectl exec إلى حاوية postgres باستخدام ملف تفريغ SQL الذي أنشأه Discourse نفسه، ولكن هذا يفشل مع الخطأ المتعلق بجدول sidebar_sections. في الآونة الأخيرة، قمت بإنشاء جهاز افتراضي جديد واتبعت طريقة التثبيت القياسية لتثبيت Discourse الإصدار 3.3.0. عندما حاولت استعادة النسخة الاحتياطية، حدث نفس الخطأ.
خلاصتي هي أنه على الرغم من أن أرشيف النسخ الاحتياطي للإنتاج تم إنشاؤه بواسطة Discourse نفسه، فإن بنية قاعدة البيانات لتثبيتي الإنتاجي الإصدار 3.0.6 تختلف بطريقة ما عما يتوقعه Discourse، مما يتسبب في فشل عمليات الترحيل. إذا كان هذا هو الحال، فأنا متشائم بشأن خياراتي. الفكرة الوحيدة التي لدي في الوقت الحالي هي البدء في تعديل ملف تفريغ SQL في أرشيف النسخ الاحتياطي لإزالة الجداول التي تسبب أخطاء DuplicateTable التي تحدث في مرحلة ترحيل قاعدة البيانات لعملية الاستعادة.
على أمل أن ينقذ هذا شخصًا من التخبط لساعات عديدة كما فعلت أنا في هذا الموقف، إليك العملية التي سمحت لي أخيرًا بالترقية من Discourse v3.0.6 إلى v3.2.0 في سياق استخدام Bitnami Helm chart (v11 إلى v12). بينما لا ينبغي أن تكون هناك حاجة لمزيد من إخلاء المسؤولية بناءً على التعليقات أعلاه، فإن هذه المشكلة ناتجة عن خطأ في Bitnami Helm chart وصوره المخصصة؛ المشكلة لا تؤثر على إصدارات Discourse الرسمية.
توضح التعليمات أدناه كيفية التنقل في الترقية. يشير “موقع الإنتاج” إلى إصدار Helm chart لموقع Discourse الذي تتم ترقيته، ويشير “موقع الترحيل” إلى إصدار chart مؤقت تم نشره بالتوازي في مساحة الاسم discourse-dev.
موقع الإنتاج
قم بتعيين منتدى الإنتاج إلى وضع القراءة فقط في لوحة تحكم النسخ الاحتياطي للمسؤول /admin/backups.
قم بعمل نسخة احتياطية باستخدام لوحة تحكم النسخ الاحتياطي للمسؤول. قم بتنزيل أرشيف النسخ الاحتياطي محليًا.
موقع الترحيل
قم بتثبيت نسخة جديدة من Bitnami chart v12.6.2 (Discourse v3.2.0). قم بتوسيع نشر خادم Discourse إلى الصفر.
cat > /tmp/db_init.sql << EOF
DROP DATABASE bitnami_application;
CREATE DATABASE bitnami_application;
GRANT ALL PRIVILEGES ON DATABASE bitnami_application TO bn_discourse;
CREATE EXTENSION hstore;
CREATE EXTENSION pg_trgm;
ALTER database bitnami_application owner to bn_discourse ;
EOF