نقل discourse بين النطاقات الفرعية - هل سيعمل هذا؟

الحالة:

ملاحظة: كلا المثيلين أدناه (الخادم 1 و 2) يعملان داخل حاويات Docker على خادمين مختلفين. يعمل كلا الخادمين عبر HTTP و HTTPS (المنفذ 80 و 443) مع شهادات Let’s Encrypt:

  1. يعمل Discourse بالكامل على الخادم 1 بعنوان IP 1، عبر HTTP و HTTPS: discourse-test.example-domain.com
  2. تم تهيئة Discourse وتشغيله (بدون مشاركات أو مواضيع إضافية حتى الآن) على الخادم 2 بعنوان IP 2، عبر HTTP و HTTPS: talktime.example-domain.com

الهدف:

نقل كل شيء من الخادم 1 (الاختبار) إلى الخادم 2 (الإنتاج) مع تغيير النطاق من discourse-test.example-domain.com إلى talktime.example-domain.com

النهج المقترح:

  1. أخذ نسخة احتياطية من Discourse على الخادم 1
  2. استعادة نسخة احتياطية من Discourse (من الخادم 1) على الخادم 2

هل يجب أن يعمل هذا بسلاسة تامة؟

أم أن هناك بعض النقاط الخفية التي يجب الحذر منها؟

شكرًا لأي توجيهات.

هذا يجب أن يعمل. قم بتشغيل الأمر التالي

script/discourse remap //discourse-test.example-domain.com //talktime.example-domain.com

بعد استعادة البيانات.

تحديث:

نجح الأمر… شكراً.

لكن لم يتم استعادة الصور الرمزية (الأفاتار) لسبب ما.

ربما بسبب هذا الفشل؟

script/discourse remap //discourse-test.example-domain.com //talktime.example-domain.com

Traceback (most recent call last):

2: from script/discourse:4:in `<main>'

1: from /usr/local/lib/ruby/site_ruby/2.6.0/rubygems/core_ext/kernel_require.rb:92:in `require'

/usr/local/lib/ruby/site_ruby/2.6.0/rubygems/core_ext/kernel_require.rb:92:in `require': cannot load such file -- thor (LoadError)

هذا يعمل:

su discourse -c 'bundle exec script/discourse remap //discourse-test.example-domain.com //talktime.example-domain.com

… وتم التنفيذ بنجاح…

لكن الصور الرمزية (Avatars) لم تنتقل خلال عملية الاستعادة هذه (لقد اخترنا تضمين الصور في النسخة الاحتياطية).

تحديث:

تمكنا من جعل الصور الرمزية تعمل عن طريق نقل الصور من الخادم 1 إلى الخادم 2 من هنا:

/var/discourse/shared/standalone/uploads/defaults