بعد فترة، أصبح الأمر منطقيًا. لقد كتبت حتى مواصفات (spec)، ولكن حتى قبل إضافة مواصفات (spec) الخاصة بي (وعند التراجع إلى ما قبل إضافة أي كود)، تفشل المواصفات (specs) بسبب:
حدث خطأ أثناء تحميل ./plugins/discourse-prometheus/spec/middleware/metrics_spec.rb.
خطأ في التنفيذ: Group.find_by(id: id)
ActiveRecord::StatementInvalid:
PG::UndefinedTable: خطأ: العلاقة "groups" غير موجودة
LINE 8: WHERE a.attrelid = '"groups"'::regclass
^
# (eval):24:in `async_exec'
# (eval):24:in `async_exec'
# ./app/models/group.rb:529:in `lookup_group'
# ./app/models/group.rb:513:in `block in ensure_automatic_groups!'
# ./app/models/group.rb:512:in `each_key'
# ./app/models/group.rb:512:in `ensure_automatic_groups!'
# (eval):3:in `block (2 levels) in run_file'
# ./spec/rails_helper.rb:79:in `<top (required)>'
# ./plugins/discourse-prometheus/spec/middleware/metrics_spec.rb:3:in `require'
# ./plugins/discourse-prometheus/spec/middleware/metrics_spec.rb:3:in `<top (required)>'
# ------------------
# --- سبب ذلك: ---
# PG::UndefinedTable:
# خطأ: العلاقة "groups" غير موجودة
# LINE 8: WHERE a.attrelid = '"groups"'::regclass
# ^
# (eval):24:in `async_exec'
لم يتم العثور على أمثلة.
يبدو أن هذا يحدث في تقريبًا كل مواصفة (spec) في الموقع. أعتقد أنني قمت بشكل صحيح بـ git reset --hard upstream/master للوصول إلى ما يجب أن يعمل، ثم قمت بحذف قاعدة البيانات وإعادة إنشائها، لكنني ما زلت أحصل على هذا الخطأ.
لم أقم بأي شيء مع المجموعات (لا تظهر المجموعة في ملحقي)، وتفشل تلك المواصفات في جميع أنحاء discourse. سأقوم بعمل نسخة طبق الأصل من النسخة الرئيسية مرة أخرى لأرى ما إذا كان شوكي يتسبب في ذلك بطريقة ما. شكرًا مرة أخرى!
ربما هذه هي مشكلتي! ربما نسيت وضع التطوير ولم أضع الاختبار. شكراً لك. أوه، وأحتاج إلى تثبيت بيئة تطوير جديدة على حاسوبي المحمول قبل أن أذهب إلى المطار.
شكرًا لك، ديفيد! لقد لاحظت أنه يطبع تحذيرًا الآن. لا أفهم تمامًا لماذا كان من الصعب如此迁移 قاعدة بيانات الاختبار، ولكن بعد أن قمت بسلسلة من عمليات الحذف والإنشاء والهجرة، ثم بتنفيذ الأمر RAILS_ENV=test bin/rake db:migrate الذي أوصيت به، تمكنت من رؤية أن المواصفات الخاصة بي معطلة! الآن، يمكنني إصلاحها وأنا في طريق لتعلم كيفية كتابة المواصفات! شكرًا مجددًا على دفعتك، @Mittineague.
هل تم إصلاح ذلك؟ يبدو أن الأمر ./bin/rake db:drop db:create يقوم بحذف قاعدة بيانات الاختبار وإنشائها من جديد، لكن يبدو أن الأمر ./bin/rake db:migrate لا ينقل التغييرات (migrations) إلى قاعدة بيانات الاختبار أيضًا.