بعد التحديث إلى 2.4.0beta10، لا يمكن عرض بعض المواضيع من فئة محددة

لقد قمت بتحديث النسخة إلى 2.4.0beta10 (أعتقد أنها كانت من beta8).

بعض المواضيع من إحدى فئاتي لم تعد ظاهرة. ومع ذلك، تظهر في رابط الموضوع الرئيسي للصفحة الأمامية. على سبيل المثال:

إذا نقرت على الموضوع Bela Lugosi drum beat (Bauhaus)، ستظهر لك هذه الصفحة:

ومع ذلك، وبشكل غريب، يظهر الموضوع بشكل صحيح تمامًا في نتائج البحث:

لقد حاولت إجراء التحديث عبر واجهة الويب لكنه فشل. لذا قمت بتسجيل الدخول وقمت بالتحديث عبر الطرفية (Terminal).

وبشكل غريب، لم أتمكن أيضًا من التراجع إلى النسخ الاحتياطية (والتي حاولت فعلها في حال كان ذلك سيحل المشكلة). تظهر لي هذه الرسالة التي قد تكون مرتبطة بالمشكلة أو لا:

[2020-02-09 16:45:26] ERROR:  could not create unique index "index_incoming_referers_on_path_and_incoming_domain_id"
[2020-02-09 16:45:26] DETAIL:  Key (path, incoming_domain_id)=(/@samaaron, 11) is duplicated.
[2020-02-09 16:45:26] EXCEPTION: psql failed: DETAIL:  Key (path, incoming_domain_id)=(/@samaaron, 11) is duplicated.

[2020-02-09 16:45:26] /var/www/discourse/lib/backup_restore/database_restorer.rb:95:in `restore_dump'
/var/www/discourse/lib/backup_restore/database_restorer.rb:26:in `restore'
/var/www/discourse/lib/backup_restore/restorer.rb:49:in `run'
/var/www/discourse/lib/backup_restore.rb:181:in `block in start!'
/var/www/discourse/lib/backup_restore.rb:178:in `fork'
/var/www/discourse/lib/backup_restore.rb:178:in `start!'
/var/www/discourse/lib/backup_restore.rb:29:in `restore!'
/var/www/discourse/app/controllers/admin/backups_controller.rb:119:in `restore'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/abstract_controller/base.rb:196:in `process_action'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/action_controller/metal/rendering.rb:30:in `process_action'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/abstract_controller/callbacks.rb:42:in `block in process_action'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.1/lib/active_support/callbacks.rb:135:in `run_callbacks'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/abstract_controller/callbacks.rb:41:in `process_action'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/action_controller/metal/rescue.rb:22:in `process_action'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/action_controller/metal/instrumentation.rb:33:in `block in process_action'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.1/lib/active_support/notifications.rb:180:in `block in instrument'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.1/lib/active_support/notifications/instrumenter.rb:24:in `instrument'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.1/lib/active_support/notifications.rb:180:in `instrument'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/action_controller/metal/instrumentation.rb:32:in `process_action'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/action_controller/metal/params_wrapper.rb:245:in `process_action'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.1/lib/active_record/railties/controller_runtime.rb:27:in `process_action'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/abstract_controller/base.rb:136:in `process'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionview-6.0.1/lib/action_view/rendering.rb:39:in `process'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-mini-profiler-1.1.6/lib/mini_profiler/profiling_methods.rb:78:in `block in profile_method'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/action_controller/metal.rb:191:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/action_controller/metal.rb:252:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/action_dispatch/routing/route_set.rb:51:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/action_dispatch/routing/route_set.rb:33:in `serve'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/action_dispatch/routing/mapper.rb:18:in `block in <class:Constraints>'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/action_dispatch/routing/mapper.rb:48:in `serve'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/action_dispatch/journey/router.rb:49:in `block in serve'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/action_dispatch/journey/router.rb:32:in `each'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/action_dispatch/journey/router.rb:32:in `serve'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/action_dispatch/routing/route_set.rb:837:in `call'
/var/www/discourse/lib/middleware/omniauth_bypass_middleware.rb:68:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-2.0.8/lib/rack/tempfile_reaper.rb:15:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-2.0.8/lib/rack/conditional_get.rb:38:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-2.0.8/lib/rack/head.rb:12:in `call'
/var/www/discourse/lib/content_security_policy/middleware.rb:12:in `call'
/var/www/discourse/lib/middleware/anonymous_cache.rb:318:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-2.0.8/lib/rack/session/abstract/id.rb:259:in `context'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-2.0.8/lib/rack/session/abstract/id.rb:253:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/action_dispatch/middleware/cookies.rb:648:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/action_dispatch/middleware/callbacks.rb:27:in `block in call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.1/lib/active_support/callbacks.rb:101:in `run_callbacks'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/action_dispatch/middleware/callbacks.rb:26:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/action_dispatch/middleware/actionable_exceptions.rb:17:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/action_dispatch/middleware/debug_exceptions.rb:32:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/action_dispatch/middleware/show_exceptions.rb:33:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/logster-2.6.1/lib/logster/middleware/reporter.rb:43:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-6.0.1/lib/rails/rack/logger.rb:38:in `call_app'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-6.0.1/lib/rails/rack/logger.rb:28:in `call'
/var/www/discourse/config/initializers/100-quiet_logger.rb:18:in `call'
/var/www/discourse/config/initializers/100-silence_logger.rb:31:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/action_dispatch/middleware/remote_ip.rb:81:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/action_dispatch/middleware/request_id.rb:27:in `call'
/var/www/discourse/lib/middleware/enforce_hostname.rb:17:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-2.0.8/lib/rack/method_override.rb:22:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/action_dispatch/middleware/executor.rb:14:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-2.0.8/lib/rack/sendfile.rb:111:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/actionpack-6.0.1/lib/action_dispatch/middleware/host_authorization.rb:77:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-mini-profiler-1.1.6/lib/mini_profiler/profiler.rb:184:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/message_bus-2.2.3/lib/message_bus/rack/middleware.rb:57:in `call'
/var/www/discourse/lib/middleware/request_tracker.rb:181:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-6.0.1/lib/rails/engine.rb:526:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-6.0.1/lib/rails/railtie.rb:190:in `public_send'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-6.0.1/lib/rails/railtie.rb:190:in `method_missing'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-2.0.8/lib/rack/urlmap.rb:68:in `block in call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-2.0.8/lib/rack/urlmap.rb:53:in `each'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rack-2.0.8/lib/rack/urlmap.rb:53:in `call'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/unicorn-5.5.3/lib/unicorn/http_server.rb:605:in `process_client'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/unicorn-5.5.3/lib/unicorn/http_server.rb:700:in `worker_loop'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/unicorn-5.5.3/lib/unicorn/http_server.rb:548:in `spawn_missing_workers'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/unicorn-5.5.3/lib/unicorn/http_server.rb:144:in `start'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/unicorn-5.5.3/bin/unicorn:128:in `<top (required)>'
/var/www/discourse/vendor/bundle/ruby/2.6.0/bin/unicorn:23:in `load'
/var/www/discourse/vendor/bundle/ruby/2.6.0/bin/unicorn:23:in `<main>'

أي مساعدة ستكون محل تقدير :slight_smile:

يبدو لي أن هذا تلف في الفهرس، وأظن أن لديك بيانات مكررة في ذلك الجدول بطريقة ما.

ربما ابدأ بحذف الصف المكرر، ولا أعرف كيف حدث ذلك.

لقد رأينا فهرسًا تالفًا مشابهًا هنا:

آه، هذا مخيف جدًا.

أنا قلق جدًا من أن تجعل الأمور أسوأ بكثير إذا بدأت في البحث حولها. لا أعرف المخطط على الإطلاق ولا أعرف حتى كيفية الدخول إلى وحدة تحكم قاعدة البيانات.

كما أنني قلق مضاعف من أنني لا أستطيع حتى التراجع إلى نسخة احتياطية إذا أفسدت الأمور تمامًا :frowning:

لا علاقة لهذا بقاعدة البيانات، بل إن الأمر ناتج فقط عن مكون سمة الحافظة الذي يسبب انتهاكًا لسياسة أمان المحتوى (CSP). حاول تعطيل مكون السمة هذا.

@Falco - رائع، شكرًا لك. بالتأكيد لم أكن لأكتشف ذلك بنفسي. غريب أنه بدأ للتو مؤخرًا، لكن أظن أن هذا هو طبيعة المنصة المتحركة…

هذا يحل المشكلة المباشرة المتمثلة في عدم ظهور الموضوع.

بعد الانتهاء من ذلك، لا يزال ما ذكره @sam ساريًا. يُظهر السجل الذي شاركتُه سابقًا مشكلةً كامنة في قاعدة بياناتك.

قد ترغب في استكشاف هذه المشكلة وإصلاحها، أو توظيف شخص للقيام بذلك، في أقرب وقت ممكن، لأن وجود نسخ احتياطية معطلة هو أمر سيء للغاية ينتظر أن يحدث.

نعم، نقطة جيدة - لكن ضحك على فكرة توظيف شخص ما. Sonic Pi مشروع مفتوح المصدر وأنا أواجه صعوبة في العثور على ما يكفي من المال لدعم نفسي - ناهيك عن دفع راتب لشخص للقيام بأشياء محددة مثل هذا.سأحاول أن أكتشف الأمر بنفسي. ومع ذلك، إذا أفسدت الأمور - أعتقد أنه لا يوجد طريق للعودة إذا كانت النسخ الاحتياطية تالفة :frowning:

أيضًا، كيف يمكنني اختبار ما إذا كانت الأمور قد تم إصلاحها دون محاولة التراجع الفعلي إلى نسخة احتياطية؟ هل توجد طريقة لإجراء تراجع تجريبي؟

يمكنك تنزيل النسخة الاحتياطية محليًا ومحاولة استعادتها باستخدام pg_dump. وبما أن الأمر يبدو وكأنه إدخال مكرر، ربما يمكنك محاولة اكتشاف الخطأ عن طريق تنفيذ استعلام SELECT (وربما باستخدام data-explorer) على الأعمدة المكررة.

أنا أحب Sonic Pi ومهمته، إنه مشروع رائع. يمكننا استضافتك ضمن خطتنا المجانية، والنقطة الوحيدة التي قد تكون عائقًا هي رغبتك في الاحتفاظ بنطاقك. يمكننا التنازل عن ذلك.

إذا انتقلت إلى استضافتنا، سنقوم بتنظيم عملية النسخ الاحتياطي كجزء من عملية الانتقال إلى خوادمنا.

يا الهي! لكان هذا لطفًا عظيمًا منك.

بكل صراحة، لم أكن أدرك حتى أنكم تقدمون خطة مجانية. هل كانت متاحة منذ البداية؟ الآن، أصبح النطاق مرتبطًا ارتباطًا وثيقًا بالهوية، لذا سيكون رائعًا لو سمحتم لي بالاستمرار في استخدامه بعد الهجرة.

ما الذي يجب علي فعله للبدء؟ هل علي عمل نسخة احتياطية كاملة وإرسالها إليكم؟ ثم توجيه خادم أسماء النطاقات (DNS) الخاص بي إلى خادمكم؟ هل تديرون أيضًا إرسال البريد الإلكتروني؟

مرحبًا سام،

توجد خططنا المجانية منذ فترة:

سنتواصل معك قريبًا :slight_smile: