خطأ غير متوقع في CI

تحديث: @NateDhaliwal يشير بشكل صحيح إلى أن وصولي إلى قاعدة البيانات في after_initializer قد يكسر القواعد - لقد كنت محظوظًا لفترة طويلة.

سأقوم بإجراء بعض التغييرات.

أحصل على:

ActiveRecord::NoDatabaseError: لم نتمكن من العثور على قاعدة بياناتك: discourse_test. يمكن العثور على تكوينات قاعدة البيانات المتاحة في config/database.yml. (ActiveRecord::NoDatabaseError)
تفاصيل
rake aborted!
ActiveRecord::NoDatabaseError: لم نتمكن من العثور على قاعدة بياناتك: discourse_test. يمكن العثور على تكوينات قاعدة البيانات المتاحة في config/database.yml. (ActiveRecord::NoDatabaseError)
لحل هذه المشكلة:
- هل لم تقم بإنشاء قاعدة البيانات، أو هل قمت بحذفها؟ لإنشاء قاعدة البيانات، قم بتشغيل:
    bin/rails db:create
- هل تغير اسم قاعدة البيانات؟ تحقق من أن config/database.yml يحتوي على اسم قاعدة البيانات الصحيح.
/__w/discourse-chatbot/discourse-chatbot/config/initializers/000-pg-connection-debug.rb:14:in `rescue in new_client'
/__w/discourse-chatbot/discourse-chatbot/config/initializers/000-pg-connection-debug.rb:4:in `new_client'

في سير عمل GitHub الخاص بي

هل تغير شيء ما حول سير عمل CI القياسي للمكونات الإضافية لم أكن على علم به؟

ما زلت أتبع:

وأستخدم الإصدار 1

لا يوجد أي رمز خاص بي يعمل حتى هذه النقطة (باستثناء تثبيت gem) وهذا الطلب يحتوي على تغييرات تكوين طفيفة على أي حال.

ملاحظة: يبدو أنه تم تطويره مؤخرًا: History for .github/workflows/discourse-plugin.yml - discourse/.github · GitHub

إعجابَين (2)

لست متأكدًا بنسبة 100%، ولكني أعتقد أن هذا يحدث إذا استخدمت ActiveRecord من خلال أشياء مثل User، وما إلى ذلك بشكل مفتوح، على سبيل المثال، ليس في on() أو في مهمة ولكن فقط في after_initialize.

لقد واجهت هذا أيضًا ليس ببعيد… على ما أذكر، اضطررت إلى طلب المساعدة من الذكاء الاصطناعي لهذا؛ قمت بنقل الكود إلى مهمة مجدولة وكان كل شيء على ما يرام بعد ذلك.

إعجابَين (2)

اعتذر، عند إلقاء نظرة ثانية يبدو أنه يفشل في الكود الخاص بي، ولكني أقوم بالوصول إليه في after_initialize

يبدو أن القواعد قد تغيرت:

user_count = User.count

لم يعد يبدو قانونيًا في مُهيئ (initializer) (ربما كانت ممارسة سيئة دائمًا)

شكرًا على الاقتراح! :clap:

أعتقد أنك على حق تمامًا في أنه يجب علي نقل هذا إلى مهمة وتشغيلها مرة واحدة. :+1:

إعجاب واحد (1)

لا مشكلة، يسعدني أنك تمكنت من حلها!

إعجاب واحد (1)