Erro inesperado no CI

ATUALIZAÇÃO: @NateDhaliwal aponta corretamente que meu acesso ao banco de dados em after_initializer pode quebrar as regras - eu tive sorte por muito tempo.

Vou fazer algumas mudanças.

Estou recebendo:

ActiveRecord::NoDatabaseError: Não conseguimos encontrar seu banco de dados: discourse_test. As configurações de banco de dados disponíveis podem ser encontradas em config/database.yml. (ActiveRecord::NoDatabaseError)
detalhe
rake aborted!
ActiveRecord::NoDatabaseError: Não conseguimos encontrar seu banco de dados: discourse_test. As configurações de banco de dados disponíveis podem ser encontradas em config/database.yml. (ActiveRecord::NoDatabaseError)
Para resolver este erro:
- Você não criou o banco de dados ou o excluiu? Para criar o banco de dados, execute:
    bin/rails db:create
- O nome do banco de dados mudou? Verifique se config/database.yml contém o nome correto do banco de dados.
/__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'

em meu fluxo do github

Algo mudou no fluxo CI de plugin padrão que eu não estava ciente?

Ainda estou seguindo:

e usando a v1

Não há código meu sendo executado até este ponto (exceto instalações de gem) e este PR, em qualquer caso, tem apenas pequenas alterações de configuração.

PS Parece que tem evoluído recentemente: History for .github/workflows/discourse-plugin.yml - discourse/.github · GitHub

2 curtidas

Não tenho 100% de certeza, mas acho que acontece se você usar ActiveRecord através de coisas como User, etc. abertamente, por exemplo, não em on() ou em um job, mas apenas em after_initialize.

Eu também encontrei isso não muito tempo atrás… se bem me lembro, tive que pedir ajuda à IA; movi o código para um job agendado e funcionou bem depois disso.

2 curtidas

Desculpe, olhando novamente, parece que está falhando no meu código, mas estou acessando em after_initialize

Parece que as regras podem ter mudado:

user_count = User.count

não parece mais legal em um inicializador (talvez sempre tenha sido uma má prática)

Obrigado pela sugestão! :clap:

Acho que você está absolutamente certo de que devo mover isso para um job e executá-lo uma vez. :+1:

1 curtida

Sem problema, fico feliz que tenha funcionado!

1 curtida