أحاول نقل مثيل Discourse الخاص بي إلى خادم مختلف.
حاولت استخدام خيار الاستعادة في لوحة تحكم المسؤول على الخادم الوجهة ولكنه استمر في الفشل مع هذا الخطأ:
[2022-04-23 21:59:00] Remapping uploads...
[2022-04-23 21:59:00] Restoring uploads, this may take a while...
[2022-04-23 21:59:00] EXCEPTION: Aws::S3::Errors::NoSuchBucket
يتم استخدام نفس تكوين app.yml بالضبط لكل من مثيل Discourse الحالي والخادم الجديد الذي أحاول الانتقال إليه.
لم أتمكن من جعل هذا يعمل على الإطلاق، لذلك قررت تجربة هذا الدليل هنا: Restore a backup from the command line
حصلت على نفس الخطأ إذا استخدمت نفس تكوين app.yml.
لذلك قررت التعليق على كل ما يتعلق بـ S3، ويبدو أن هذا قد نجح:
Reconnecting to the database...
Reloading site settings...
Disabling outgoing emails for non-staff users...
Disabling readonly mode...
Clearing category cache...
Reloading translations...
Remapping uploads...
Remapping '//bucket.nyc3.digitaloceanspaces.com/' to '/uploads/default/'
optimized_images=480
uploads=35
user_histories=13
Remapping 'https://cdnurl.com/' to 'https://forumurl.com/uploads/default/'
post_revisions=2
posts=4
topic_links=4
Remapping 'cdnurl.com' to 'forumurl.com'
topic_links=4
Restoring uploads, this may take a while...
Posts will be rebaked by a background job in sidekiq. You will see missing images until that has completed.
You can expedite the process by manually running "rake posts:rebake_uncooked_posts"
Clearing emoji cache...
Clear theme cache
Executing the after_restore_hook...
Cleaning stuff up...
Dropping functions from the discourse_functions schema...
Removing tmp '/var/www/discourse/tmp/restores/default/2022-04-23-234852' directory...
Unpausing sidekiq...
Marking restore as finished...
Notifying 'system' of the end of the restore...
Finished!
[SUCCESS]
Restore done.
بعد نجاح الاستعادة، قررت إلغاء التعليق على كل ما يتعلق بـ S3 وتشغيل ./launcher rebuild app.
ثم حاولت الانتقال إلى مثيل Discourse الخاص بي ولاحظت أن جميع التحميلات مفقودة (الشعار، صور الملف الشخصي، إلخ).
ثم قمت بتشغيل:
./launcher enter app
rake posts:rebake (لم تظهر أخطاء، قال إنه أعاد خبز 60 شيئًا من المشاركات)
rake posts:rebake_uncooked_posts (قال إنه أعاد خبز 0 مشاركة)
حتى مع هذا، لا تزال جميع التحميلات لا تعمل وتعيد 404 (أو في حالة صور الملف الشخصي، تظهر صورة الملف الشخصي الافتراضية).
من السجل أعلاه مع الاستعادة، يبدو بالتأكيد أنه تمت إعادة تعيين عناوين URL نظرًا لأنه يعتقد أن S3 لم يعد مستخدمًا، ولكن هل هناك طريقة لإعادة تعيينه مرة أخرى بعد اكتمال الاستعادة، ليعود إلى ما يفترض أن يكون عليه؟
بدلاً من ذلك، هل هناك طريقة لجعله يعمل مع إعدادات S3 في app.yml؟ لست متأكدًا لماذا يصر على أن الحاوية غير موجودة.
للمرجع، هذا هو شكل تكوين S3 في app.yml الخاص بي:
DISCOURSE_USE_S3: true
DISCOURSE_S3_REGION: nyc3
DISCOURSE_S3_ENDPOINT: https://nyc3.digitaloceanspaces.com
DISCOURSE_S3_ACCESS_KEY_ID: KEY
DISCOURSE_S3_SECRET_ACCESS_KEY: ACCESS_KEY
DISCOURSE_S3_CDN_URL: https://forumcdn.com
DISCOURSE_S3_BUCKET: upload-bucket
DISCOURSE_S3_BACKUP_BUCKET: backup-bucket
DISCOURSE_BACKUP_LOCATION: s3
الحاوية المستخدمة للتحميلات في مثيل Discourse الحالي ومثيل Discourse الجديد هي نفسها، لذلك توقعت أن يعمل إعادة البناء وإعادة تعيين عناوين URL.
لست متأكدًا أين أخطأت، ولكني آمل أن يشيرني شخص ما في الاتجاه الصحيح.
شكرا
