Неожиданная ошибка в CI плагина Discourse

ОБНОВЛЕНИЕ: @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 для плагинов, о чем я не знал?

Я всё ещё следую:

и использую v1

До этого момента мой код не выполнялся (за исключением установки gem), и в любом случае этот PR содержит лишь незначительные изменения конфигурации.

PS Похоже, что он недавно обновлялся: History for .github/workflows/discourse-plugin.yml - discourse/.github · GitHub

Не уверен на 100%, но, кажется, это происходит, если использовать ActiveRecord через такие объекты, как User, и т. д. напрямую, например, не в on() или в задаче, а просто в after_initialize.

Я тоже столкнулся с этим не так давно… Насколько я помню, мне пришлось попросить об этом ИИ; я перенёс код в запланированную задачу, и после этого всё заработало.

Извините, при повторном взгляде действительно кажется, что проблема в моём коде, но я обращаюсь к этому в after_initialize.

Похоже, правила могли измениться:

user_count = User.count

теперь это выглядит недопустимым в инициализаторе (возможно, так было всегда и это плохая практика).

Спасибо за предложение! :clap:

Я думаю, вы абсолютно правы: мне стоит перенести это в задачу и выполнить один раз. :+1:

Никаких проблем, рад, что у вас всё получилось!