كان لدي منتدى نقاش صغير لبضع سنوات وكان يعمل بشكل جيد. قمت بإعداد النسخ الاحتياطي التلقائي، لكنني لم أقم بتحديث إصدار Discourse لفترة طويلة.
تعطل الخادم، لكن لدي نسخة احتياطية. النسخة الاحتياطية من إصدار Discourse القديم، منذ حوالي عامين. عندما أحاول تثبيت أحدث إصدار واستعادة النسخة الاحتياطية، فإنها لا تعمل. عندما أحاول تثبيت الإصدار القديم، فإنه غير ممكن: يقوم البرنامج النصي للإعداد بسحب التحديثات الجديدة وأحدث صورة Docker تلقائيًا، حتى أنني وجدت هذه الأسطر في البرنامج النصي للمشغل وحذفتها، ولكن بعض التعليمات البرمجية الداخلية في صورة Docker تتحقق أيضًا وتحدث Git إلى أحدث إصدار.
ماذا يجب أن أفعل؟ كيف يمكنني تشغيل إصدار Discourse القديم أو استعادة النسخة الاحتياطية القديمة على الإصدار الجديد؟
إذا كنت تريد المساعدة، فستحتاج إلى أن تكون أكثر تحديدًا. يجب أن تعمل. هناك فرصة جيدة بأن المشكلة لن تعمل أيضًا إذا تمكنت من تثبيت نفس إصدار Discourse الذي كان لديك حينها.
لا توجد أخطاء حرجة في مخرجات ./launcher logs app، لكن المنتدى لا يعمل. معظم الأزرار لا تعمل، ولا توجد مواضيع، وHTML يبدو غريباً (الصفحة الرئيسية المعطلة تتكرر ويمكن تمريرها إلى الأسفل بلا حدود).
أنا لست خبيراً تقنياً، وآمل أن تخبرني ما هي السجلات التي يمكنني إضافتها إلى تقريري وأين يمكنني العثور عليها.
في الوقت الحالي لا يمكنني الوصول إلى أي بيانات من المنتدى، حتى لو كان لدي نسخة احتياطية. يتم عرض شعار المنتدى وعلاماته فقط، وجميع الأزرار غير قابلة للاستخدام.
لا تحتوي سجلات إنتاج Rails على أخطاء حرجة، وسجل product_errors.log فارغ.
سجلات أخطاء Unicorn
OID غير معروف 17246: فشل في التعرف على نوع 'embeddings'. سيتم التعامل معه كسلسلة نصية.
فشل في الإبلاغ عن الخطأ: رفض الاتصال - connect(2) لـ 127.0.0.1:6379 (redis://localhost:6379) 2 فشل اشتراك EOFError، إعادة الاتصال خلال ثانية واحدة. مكدس الاستدعاءات /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-client-0.25.2/lib/redis_client/ruby_connection.rb:103:in `rescue in read'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-client-0.25.2/lib/redis_client/ruby_connection.rb:94:in `read'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-client-0.25.2/lib/redis_client.rb:535:in `next_event'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-5.4.0/lib/redis/subscribe.rb:66:in `subscription'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-5.4.0/lib/redis/subscribe.rb:17:in `subscribe'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-5.4.0/lib/redis.rb:175:in `_subscription'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-5.4.0/lib/redis/commands/pubsub.rb:17:in `subscribe'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/message_bus-4.4.1/lib/message_bus/backends/redis.rb:293:in `global_subscribe'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/message_bus-4.4.1/lib/message_bus.rb:769:in `global_subscribe_thread'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/message_bus-4.4.1/lib/message_bus.rb:740:in `block in new_subscriber_thread'
فشل في الإبلاغ عن الخطأ: رفض الاتصال - connect(2) لـ 127.0.0.1:6379 (redis://localhost:6379) 3 خطأ في جلب المهمة: رفض الاتصال - connect(2) لـ 127.0.0.1:6379
فشل في الإبلاغ عن الخطأ: رفض الاتصال - connect(2) لـ 127.0.0.1:6379 (redis://localhost:6379) 3 خطأ في جلب المهمة: رفض الاتصال - connect(2) لـ 127.0.0.1:6379
فشل في الإبلاغ عن الخطأ: رفض الاتصال - connect(2) لـ 127.0.0.1:6379 (redis://localhost:6379) 3 خطأ في جلب المهمة: رفض الاتصال - connect(2) لـ 127.0.0.1:6379
فشل في الإبلاغ عن الخطأ: رفض الاتصال - connect(2) لـ 127.0.0.1:6379 (redis://localhost:6379) 3 خطأ في جلب المهمة: رفض الاتصال - connect(2) لـ 127.0.0.1:6379
فشل في الإبلاغ عن الخطأ: رفض الاتصال - connect(2) لـ 127.0.0.1:6379 (redis://localhost:6379) 3 خطأ في جلب المهمة: رفض الاتصال - connect(2) لـ 127.0.0.1:6379
فشل في الإبلاغ عن الخطأ: رفض الاتصال - connect(2) لـ 127.0.0.1:6379 (redis://localhost:6379) 3 استثناء المهمة: رفض الاتصال - connect(2) لـ 127.0.0.1:6379 sidekiq-exception
فشل في الإبلاغ عن الخطأ: رفض الاتصال - connect(2) لـ 127.0.0.1:6379 (redis://localhost:6379) 3 استثناء المهمة: رفض الاتصال - connect(2) لـ 127.0.0.1:6379 sidekiq-exception
فشل في الإبلاغ عن الخطأ: رفض الاتصال - connect(2) لـ 127.0.0.1:6379 (redis://localhost:6379) 3 استثناء المهمة: رفض الاتصال - connect(2) لـ 127.0.0.1:6379 sidekiq-exception
فشل في الإبلاغ عن الخطأ: رفض الاتصال - connect(2) لـ 127.0.0.1:6379 (redis://localhost:6379) 3 استثناء المهمة: رفض الاتصال - connect(2) لـ 127.0.0.1:6379 sidekiq-exception
فشل في الإبلاغ عن الخطأ: رفض الاتصال - connect(2) لـ 127.0.0.1:6379 (redis://localhost:6379) 3 استثناء المهمة: رفض الاتصال - connect(2) لـ 127.0.0.1:6379 sidekiq-exception
فشل في الإبلاغ عن الخطأ: رفض الاتصال - connect(2) لـ 127.0.0.1:6379 (redis://localhost:6379) 3 نبضات القلب: رفض الاتصال - connect(2) لـ 127.0.0.1:6379
فشل في الإبلاغ عن الخطأ: رفض الاتصال - connect(2) لـ 127.0.0.1:6379 (redis://localhost:6379) 3 استثناء المهمة: رفض الاتصال - connect(2) لـ 127.0.0.1:6379 (redis://localhost:6379) sidekiq-exception
فشل في الإبلاغ عن الخطأ: رفض الاتصال - connect(2) لـ 127.0.0.1:6379 (redis://localhost:6379) 2 رفض الاتصال - connect(2) لـ 127.0.0.1:6379 (redis://localhost:6379) فشل اشتراك، إعادة الاتصال خلال ثانية واحدة. مكدس الاستدعاءات /usr/local/lib/ruby/3.3.0/socket.rb:1219:in `__connect_nonblock'
/usr/local/lib/ruby/3.3.0/socket.rb:1219:in `connect_nonblock'
/usr/local/lib/ruby/3.3.0/socket.rb:60:in `connect_internal'
/usr/local/lib/ruby/3.3.0/socket.rb:141:in `connect'
/usr/local/lib/ruby/3.3.0/socket.rb:647:in `block in tcp'
/usr/local/lib/ruby/3.3.0/socket.rb:231:in `each'
/usr/local/lib/ruby/3.3.0/socket.rb:231:in `foreach'
/usr/local/lib/ruby/3.3.0/socket.rb:637:in `tcp'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-client-0.25.2/lib/redis_client/ruby_connection.rb:120:in `connect'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-client-0.25.2/lib/redis_client/connection_mixin.rb:11:in `reconnect'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-client-0.25.2/lib/redis_client.rb:769:in `block in connect'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-client-0.25.2/lib/redis_client/middlewares.rb:12:in `connect'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-client-0.25.2/lib/redis_client.rb:768:in `connect'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-client-0.25.2/lib/redis_client.rb:759:in `raw_connection'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-client-0.25.2/lib/redis_client.rb:719:in `ensure_connected'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-client-0.25.2/lib/redis_client.rb:314:in `call_v'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-5.4.0/lib/redis/client.rb:90:in `call_v'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rack-mini-profiler-4.0.1/lib/mini_profiler/profiling_methods.rb:90:in `block in profile_method'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-5.4.0/lib/redis.rb:152:in `block in send_command'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-5.4.0/lib/redis.rb:151:in `synchronize'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-5.4.0/lib/redis.rb:151:in `send_command'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-5.4.0/lib/redis/commands/strings.rb:191:in `get'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/message_bus-4.4.1/lib/message_bus/backends/redis.rb:366:in `process_global_backlog'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/message_bus-4.4.1/lib/message_bus/backends/redis.rb:279:in `block in global_subscribe'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/message_bus-4.4.1/lib/message_bus/backends/redis.rb:291:in `global_subscribe'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/message_bus-4.4.1/lib/message_bus.rb:769:in `global_subscribe_thread'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/message_bus-4.4.1/lib/message_bus.rb:740:in `block in new_subscriber_thread'
OID غير معروف 17246: فشل في التعرف على نوع 'embeddings'. سيتم التعامل معه كسلسلة نصية.
سجلات Sidekiq فارغة.
لا توجد مشاكل في سجلات Nginx.
أرى مشكلة اتصال redis في سجلات Unicord، ولكن سجلات Redis نفسها لا تحتوي على أخطاء:
9706:C 28 Aug 2025 15:11:25.025 * Fork CoW for RDB: current 1 MB, peak 1 MB, average 0 MB
881:M 28 Aug 2025 15:11:25.106 * Background saving terminated with success
881:M 28 Aug 2025 15:16:26.096 * 100 changes in 300 seconds. Saving...
881:M 28 Aug 2025 15:16:26.097 * Background saving started by pid 10037
10037:C 28 Aug 2025 15:16:26.109 * DB saved on disk
10037:C 28 Aug 2025 15:16:26.109 * Fork CoW for RDB: current 1 MB, peak 1 MB, average 0 MB
881:M 28 Aug 2025 15:16:26.198 * Background saving terminated with success
881:M 28 Aug 2025 15:21:27.004 * 100 changes in 300 seconds. Saving...
881:M 28 Aug 2025 15:21:27.004 * Background saving started by pid 10365
10365:C 28 Aug 2025 15:21:27.019 * DB saved on disk
10365:C 28 Aug 2025 15:21:27.019 * Fork CoW for RDB: current 1 MB, peak 1 MB, average 0 MB
881:M 28 Aug 2025 15:21:27.105 * Background saving terminated with success
881:M 28 Aug 2025 15:26:28.030 * 100 changes in 300 seconds. Saving...
881:M 28 Aug 2025 15:26:28.031 * Background saving started by pid 10703
10703:C 28 Aug 2025 15:26:28.050 * DB saved on disk
10703:C 28 Aug 2025 15:26:28.051 * Fork CoW for RDB: current 1 MB, peak 1 MB, average 0 MB
881:M 28 Aug 2025 15:26:28.132 * Background saving terminated with success
881:M 28 Aug 2025 15:31:29.094 * 100 changes in 300 seconds. Saving...
881:M 28 Aug 2025 15:31:29.095 * Background saving started by pid 11028
11028:C 28 Aug 2025 15:31:29.109 * DB saved on disk
11028:C 28 Aug 2025 15:31:29.110 * Fork CoW for RDB: current 1 MB, peak 1 MB, average 0 MB
881:M 28 Aug 2025 15:31:29.196 * Background saving terminated with success
شكرًا، لقد ساعد ذلك والمنتدى يعمل (ليس بشكل صحيح، ولكن يمكنني الوصول إلى المواضيع مع السياق).
ومع ذلك، فإن المنتدى بدون الوضع الآمن غير قابل للاستخدام، ولا أتذكر بالضبط الإضافات التي قمت بتثبيتها. يجب أن تكون قائمة الإضافات في app.yml، ولكن الخادم معطل ولدي فقط نسخة احتياطية، والتي لا تحتوي على app.yml، على حد علمي. ماذا يجب أن أفعل لاستعادة المنتدى وإزالة الإضافات المعطلة؟
لا ينبغي أن يؤدي الاستعادة بدون استخدام ملف app.yml موجود إلى تثبيت أي ملحق باستثناء الملحقات المجمعة (وجميعها رسمية).\n\nومع ذلك، يتم تضمين السمات ومكونات السمات في النسخة الاحتياطية، لذا حاول تعطيلها.\n\nحاول استخدام الوضع الآمن وتعطيل السمات والمكونات فقط للتأكد من أن مشاكلك ناتجة عن أحدها.
شكرًا، إنه يعمل حقًا فقط بدون سمات، ولكن أين يمكنني العثور على السمات؟ في النسخة الاحتياطية أرى عنصرين فقط: dump.sql.gz ومجلد uploads، الذي يحتوي فقط على وسائط المستخدم وملفاته.