لقد قمت بترحيل منتدى يحتوي على 200,000 مشاركة إلى خادم جديد. تم وضع الموقع المباشر في وضع القراءة فقط حتى لا يكون هناك وقت تعطل.
لقد قمت باستعادة النسخة الاحتياطية على نطاق فرعي مختلف حتى لا يرى المستخدمون شاشات التثبيت أو أي مشاكل قد تحدث أثناء الاستعادة - شيء مثل dev.example.com.
بمجرد اكتمال الاستعادة، قمت بتوجيه نظام أسماء النطاقات (DNS) إلى الخادم الجديد وغيرت النطاق في ملف app.yml إلى forum.example.com العادي.
بعد ذلك، كانت جميع الرموز التعبيرية في المشاركات الأساسية تشير إلى خادم dev.example.com، لذلك قمت بتشغيل rake:rebake.
لقد تمكن من معالجة حوالي 1,000-2,000 مشاركة قبل أن يتعطل مع أخطاء حول اتصال قاعدة البيانات.
إليك بعض المقتطفات:
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.4/lib/bundler/vendor/thor/lib/thor.rb:392:in `dispatch'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.4/lib/bundler/cli.rb:34:in `dispatch'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.4/lib/bundler/vendor/thor/lib/thor/base.rb:485:in `start'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.4/lib/bundler/cli.rb:28:in `start'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.4/exe/bundle:45:in `block in <top (required)>'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.4/lib/bundler/friendly_errors.rb:117:in `with_friendly_errors'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.4/exe/bundle:33:in `<top (required)>'
/usr/local/bin/bundle:25:in `load'
/usr/local/bin/bundle:25:in `<main>'
1999 / 200968 ( 1.0%)
Failed to rebake (topic_id: 78730, post_id: 210607)
PG::ConnectionBad: PQsocket() can't get socket descriptor
/var/www/discourse/lib/tasks/posts.rake:108:in `rebake_posts_all_sites'
/var/www/discourse/lib/tasks/posts.rake:7:in `block in <main>'
/usr/local/bin/bundle:25:in `load'
/usr/local/bin/bundle:25:in `<main>'
Caused by:
PG::ConnectionBad: PQsocket() can't get socket descriptor
في الوقت الحالي، أقوم بتحميل الصور عن طريق إعادة توجيه النطاق dev.example.com إلى النطاق forum.example.com، ولكنه مجرد حل مؤقت.
هل يعرف أحد كيف أتجاوز هذا الخطأ حتى أتمكن من إعادة خبز جميع المشاركات؟ هل يسبب الكثير من الضغط على قاعدة البيانات؟
