كيفية استكشاف أخطاء قاعدة البيانات في إضافة قديمة؟

أنا جديد في تطوير إضافات Discourse، وللبدء، أحاول تحديث إضافة الاختبار هذه لتعمل مع أحدث إصدار من Discourse.

إذا لم يكن الأمر مزعجًا، يمكنني الاستعانة ببعض المساعدة في فهم كيفية استكشاف هذه المشكلة التي تظهر كلما حاولت إنشاء موضوع أو عرضه أثناء تمكين الإضافة:

رسالة

خطأ في المهمة: PG::UndefinedTable: خطأ: العلاقة "quizzes" غير موجودة
LINE 9: WHERE a.attrelid = '"quizzes"'::regclass
                            ^


تتبع الأخطاء

rack-mini-profiler-3.3.0/lib/patches/db/pg.rb:110:in `exec'
rack-mini-profiler-3.3.0/lib/patches/db/pg.rb:110:in `async_exec'
activerecord-7.0.8/lib/active_record/connection_adapters/postgresql/database_statements.rb:19:in `block (2 levels) in query'
activesupport-7.0.8/lib/active_support/concurrency/share_lock.rb:187:in `yield_shares'
activesupport-7.0.8/lib/active_support/dependencies/interlock.rb:41:in `permit_concurrent_loads'
activerecord-7.0.8/lib/active_record/connection_adapters/postgresql/database_statements.rb:18:in `block in query'
activesupport-7.0.8/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `handle_interrupt'
activesupport-7.0.8/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `block in synchronize'
activesupport-7.0.8/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `handle_interrupt'
activesupport-7.0.8/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `synchronize'

هل هناك أي مشاكل شائعة يجب أن أبحث عنها قد تكون سببًا في عدم وجود العلاقة؟ هل توجد عادةً مثل هذه المشاكل في /db؟

في حال كان الأمر ذا صلة: أنا أستخدم بيئة تطوير Docker على Linux كما هو موضح في هذا الدليل ويمكنك رؤية ما قمت به حتى الآن هنا.

يبدو أنك لم تقم بتشغيل عمليات الترحيل (migrations)
تحتاج إلى متغير بيئة إضافي لتشغيلها للمكونات الإضافية (plugins)، انظر:

إعجابَين (2)

شكرا على الرد السريع! لقد لاحظت للتو d/migrate، والذي بدا أنه يحل المشكلة بعد تشغيله. كيف يقارن ذلك بـ LOAD_PLUGINS=1 RAILS_ENV=test rake db:migrate؟

d/migrate هو غلاف نصي لـ docker.

الأمر الذي شاركته هو أمر rails الحقيقي الذي يتم تشغيله.

بدلاً من ذلك، يمكنك الدخول إلى الحاوية قيد التشغيل وتشغيل أمر rails.

(ولكن نعم، لا تحتاج إلى استهداف بيئة الاختبار!)

يبدو جيدًا! شكرًا على المساعدة.

فتحت d/migrate ورأيت أنه يحتوي على كل شيء من الأمر الذي شاركته باستثناء LOAD_PLUGINS=1. لست متأكدًا لماذا نجح الأمر بدونه، ولكن هذا جيد بالنسبة لي.

إعجابَين (2)

رجل طيب!

من الجيد دائمًا رفع الأغطية! الكثير من الناس ببساطة لا يقرؤون الكود المصدري وهذا غالبًا ما يكون أكثر فائدة مما تدرك!

نعم هذا تمييز مثير للاهتمام - أتساءل عما إذا كان ضروريًا فقط عند القيام بذلك للبيئة الاختبارية :thinking:

إعجابَين (2)

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.