أقوم حاليًا بإصطحاب ابنتي إلى المدرسة. ثم لدي بعض المواعيد هذا الصباح. سيستغرق الأمر مني بعض الوقت للتحقيق.
يبدو أن بعض أعمدة قاعدة البيانات قد لا تكون قد انتقلت بشكل صحيح. أضاف هذا الإصدار عدة أعمدة جديدة إلى الجداول الموجودة. هل يمكنك محاولة تشغيل الأمر التالي:
cd /var/discourse && ./launcher rebuild app
لا يؤدي استخدام زر التحديث داخل اللوحة إلى تطبيق هجرات قاعدة البيانات — يلزم إعادة بناء كاملة عندما تضيف الإضافة أعمدة جديدة.
شكرًا لصبرك. سنقوم بحل المشكلة!
في الواقع، هل يمكنك تشغيل هذا أولاً ونشر المخرجات؟
./launcher enter app
su discourse -c 'cd /var/www/discourse && bundle exec rails runner "puts ActiveRecord::Base.connection.columns(\"daily_challenges\").map(&:name)"'
root@segredin-app:/var/www/discourse# su discourse -c 'cd /var/www/discourse && bundle exec rails runner "puts ActiveRecord::Base.connection.columns(\"daily_cha llenges\").map(&:name)"'
id
topic_id
hashtag
start_date
end_date
check_ins_needed
description
created_at
updated_at
final_post_sent
weekly_post_enabled
weekly_post_day
weekly_post_hour
award_badge
badge_name
badge_id
check_in_interval
week_start
category_id
انظر إلى هذا
ActiveModel::UnknownAttributeError (خاصية غير معروفة 'challenge_timezone' لـ DailyChallenge.) app/controllers/application_controller.rb:447:in 'block in ApplicationController#with_resolved_locale'
يبدو أنك تفتقد عمود قاعدة البيانات challenge_timezone. هل يمكنك تشغيل الأمر التالي:
./launcher enter app
su discourse -c 'cd /var/www/discourse && bundle exec rails runner "ActiveRecord::Base.connection.add_column(:daily_challenges, :challenge_timezone, :string, default: \"UTC\") unless ActiveRecord::Base.connection.column_exists?(:daily_challenges, :challenge_timezone)"'
يجب أن يؤدي ذلك إلى إضافته. سأقوم بالتحقيق في سبب عدم إضافته وتحديث الملفات.
حسناً، لا يزال الأمر قائماً لكنني سأنتظر إصلاحه
ActiveModel::UnknownAttributeError (unknown attribute 'challenge_timezone' for DailyChallenge.)
app/controllers/application_controller.rb:447:in 'block in ApplicationController#with_resolved_locale'
app/controllers/application_controller.rb:447:in 'ApplicationController#with_resolved_locale'
app/controllers/application_controller.rb:1098:in 'ApplicationController#ensure_dont_cache_page'
lib/middleware/omniauth_bypass_middleware.rb:35:in 'Middleware::OmniauthBypassMiddleware#call'
lib/middleware/crawler_hooks.rb:11:in 'Middleware::CrawlerHooks#call'
lib/content_security_policy/middleware.rb:12:in 'ContentSecurityPolicy::Middleware#call'
lib/middleware/anonymous_cache.rb:420:in 'Middleware::AnonymousCache#call'
lib/middleware/csp_script_nonce_injector.rb:12:in 'Middleware::CspScriptNonceInjector#call'
config/initializers/008-rack-cors.rb:14:in 'Discourse::Cors#call'
lib/middleware/default_headers.rb:13:in 'Middleware::DefaultHeaders#call'
config/initializers/100-quiet_logger.rb:20:in 'DiscourseRackQuietAssetsLogger#call'
config/initializers/100-silence_logger.rb:29:in 'SilenceLogger#call'
lib/middleware/enforce_hostname.rb:23:in 'Middleware::EnforceHostname#call'
lib/middleware/request_tracker.rb:321:in 'Middleware::RequestTracker#call'
lib/middleware/overload_protections.rb:22:in 'Middleware::OverloadProtections#call'
lib/middleware/processing_request.rb:14:in 'Middleware::ProcessingRequest#call'
للتأكد من أنك في الدليل الصحيح، قم بتشغيل الأمر التالي أولاً:
cd /var/discourse && ./launcher enter app
ثم قم بتشغيل الأمر التالي:
su discourse -c 'cd /var/www/discourse && bundle exec rails runner "ActiveRecord::Base.connection.add_column(:daily_challenges, :challenge_timezone, :string, default: \"UTC\") unless ActiveRecord::Base.connection.column_exists?(:daily_challenges, :challenge_timezone)"'
بعد تشغيل ذلك، يمكنك كتابة “exit” للخروج من التطبيق.
قم بعمل تحديث قوي لصفحة الويب (ctrl-shift-R) وحاول مرة أخرى. إذا لم ينجح ذلك، فسأقوم بدفع إصلاح خلال بضع دقائق.
أنا في اجتماع. سأقوم بالتحديث قريبًا.
لقد دفعت تحديثًا للتو. يجب أن تتمكن من التحديث عبر لوحة الإدارة. إذا لم ينجح ذلك، فقد تحتاج إلى تنفيذ الأمر التالي:
./launcher rebuild app
يعمل

واوواو!!! شكرًا لك على الصبر ومساعدتي في تجاوز ذلك!!

إذن، هل هناك وظائف جديدة قادمة في الخطوة التالية؟ أود أن أقدم لك بعض الأفكار
سلاسل متتالية مع عملات وشارات، ومكان/قسم لمتابعة إحصائياتك الخاصة
على أي حال، أنا أحب هذا وأنتظر المزيد ![]()
أعمل حاليًا على هذا الجزء. سيكون في الأساس “بوت” تنشئه (في الواقع مجرد حساب مستخدم). سيقوم الإضافة بمراقبة ذكر البوت. عند رؤيته له، سيقوم بتنفيذ الإجراء. على سبيل المثال:
اسم البوت: ChallengeBot
يكتب شخص ما:
@ChallengeBot status
سيقوم البوت بإرسال رسالة خاصة (DM) إليه تحتوي على حالته الحالية في التحدي.
سيكون للبوت أيضًا بعض الخيارات الأخرى.
كيف يمكنني الحصول على هذه المعلومات لعرضها في مكان آخر؟ أو جعلها تظهر في بطاقة المستخدم؟ إذا كان هناك مسار للقيام بذلك، فسيكون ذلك رائعًا.
متاح الآن الإصدار v1.4.0!
يضيف هذا الإصدار ChallengeBot — حساب روبوت اختياري يجلب ميزات التفاعل المدعومة بالرسائل المباشرة إلى تحدياتك.
ما هو الجديد في هذا الإصدار:
- رسائل تأكيد تسجيل الدخول — يتلقى الأعضاء رسالة مباشرة من ChallengeBot بعد كل تسجيل دخول ناجح، تُظهر سلسلة تسجيل الدخول الحالية ورابط موضوع التحدي.
- رسائل تذكير — يتلقى المشاركون الذين لم يسجلوا دخولهم لمدة يومين متتاليين أو أكثر (التحديات اليومية) أو لم يسجلوا دخولهم بحلول اليوم الأخير من الأسبوع (التحديات الأسبوعية) تذكيرًا لطيفًا من ChallengeBot. تتضمن الرسالة عدد تسجيلات الدخول الحالي والهدف. يمكن تفعيلها أو إيقافها لكل تحدي، وتكون مفعلة افتراضيًا.
- أوامر @mention — يمكن للأعضاء ذكر
@ChallengeBotفي أي موضوع تحدي نشط للحصول على إحصائياتهم الشخصية عبر الرسائل المباشرة. لا يرد الروبوت أبدًا داخل الموضوع نفسه. الأوامر المتاحة:status،leaderboard،streak،checkins،progress،help. محدودة بمعدل 10 أوامر لكل مستخدم في الساعة. - منشورات لوحة الصدارة والنتائج النهائية — إذا تم تكوين ChallengeBot، فإن منشورات لوحة الصدارة الأسبوعية ومنشورات النتائج النهائية تُرسل الآن من حساب الروبوت بدلاً من حساب النظام.
- إعداد موقع جديد —
daily_challenge_bot_username - حقل تحدي جديد — مفتاح تبديل رسائل التذكير (مفعّل افتراضيًا)
إعداد ChallengeBot اختياري — فجميع الميزات الحالية تستمر في العمل بدونه. راجع المنشور الرئيسي للحصول على إرشادات الإعداد الكاملة.
ملاحظة: يتضمن هذا الإصدار هجرة قاعدة بيانات. سيتم تطبيق زر التحديث في اللوحة تلقائيًا.

