Error inesperado en CI

ACTUALIZACIÓN: @NateDhaliwal señala correctamente que mi acceso a la base de datos en after_initializer puede romper las reglas; tuve suerte durante mucho tiempo.

Voy a hacer algunos cambios.

Estoy recibiendo:

ActiveRecord::NoDatabaseError: No pudimos encontrar tu base de datos: discourse_test. Las configuraciones de base de datos disponibles se pueden encontrar en config/database.yml. (ActiveRecord::NoDatabaseError)
detalle
rake aborted!
ActiveRecord::NoDatabaseError: No pudimos encontrar tu base de datos: discourse_test. Las configuraciones de base de datos disponibles se pueden encontrar en config/database.yml. (ActiveRecord::NoDatabaseError)
Para resolver este error:
- ¿No creaste la base de datos o la eliminaste? Para crear la base de datos, ejecuta:
    bin/rails db:create
- ¿Ha cambiado el nombre de la base de datos? Verifica que config/database.yml contenga el nombre de base de datos correcto.
/__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'

en mi flujo de trabajo de GitHub

¿Ha cambiado algo en el flujo de trabajo estándar de CI de plugins de lo que no estuviera al tanto?

Todavía estoy siguiendo:

y usando la v1

No se está ejecutando ningún código mío hasta este punto (excepto las instalaciones de gemas) y esta PR, en cualquier caso, solo tiene cambios de configuración menores.

PD Parece que ha estado evolucionando recientemente: History for .github/workflows/discourse-plugin.yml - discourse/.github · GitHub

2 Me gusta

No estoy 100% seguro, pero creo que sucede si usas ActiveRecord a través de cosas como User, etc. abiertamente, por ejemplo, no en on() o en un trabajo, sino solo en after_initialize.

Yo también me encontré con esto no hace mucho… si mal no recuerdo, tuve que pedirle ayuda a la IA; moví el código a un trabajo programado y después de eso funcionó bien.

2 Me gusta

Disculpas, al mirar de nuevo parece estar fallando en mi código, pero lo estoy accediendo en after_initialize

Parece que las reglas han cambiado:

user_count = User.count

ya no parece ser legal en un inicializador (quizás siempre fue una mala práctica)

¡Gracias por la sugerencia! :clap:

Creo que tienes toda la razón en que debería mover esto a un trabajo y ejecutarlo una vez. :+1:

1 me gusta

No hay problema, ¡me alegra que te haya funcionado!

1 me gusta