Errore imprevisto in CI

AGGIORNAMENTO: @NateDhaliwal sottolinea giustamente che il mio accesso al DB in after_initializer potrebbe infrangere le regole - sono stato solo fortunato per molto tempo.

Apporterò alcune modifiche.

Sto ricevendo:

ActiveRecord::NoDatabaseError: Non siamo riusciti a trovare il tuo database: discourse_test. Le configurazioni del database disponibili si trovano in config/database.yml. (ActiveRecord::NoDatabaseError)
dettaglio
rake aborted!
ActiveRecord::NoDatabaseError: Non siamo riusciti a trovare il tuo database: discourse_test. Le configurazioni del database disponibili si trovano in config/database.yml. (ActiveRecord::NoDatabaseError)
Per risolvere questo errore:
- Non hai creato il database o lo hai eliminato? Per creare il database, esegui:
    bin/rails db:create
- È cambiato il nome del database? Verifica che config/database.yml contenga il nome corretto del database.
/__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'

nel mio flusso di lavoro GitHub

È cambiato qualcosa nel flusso di lavoro CI standard di cui non ero a conoscenza?

Sto ancora seguendo:

e usando la v1

Non c’è codice mio in esecuzione fino a questo punto (eccetto le installazioni delle gemme) e questo PR contiene comunque solo modifiche di configurazione minori.

PS Sembra che si sia evoluto di recente: History for .github/workflows/discourse-plugin.yml - discourse/.github · GitHub

2 Mi Piace

Non sono sicuro al 100%, ma penso che succeda se usi ActiveRecord tramite cose come User, ecc. apertamente, ad esempio non in on() o in un job ma solo in after_initialize.\n\nHo riscontrato anche questo non molto tempo fa… se non ricordo male ho dovuto chiedere all’IA; ho spostato il codice in un job pianificato e dopo è andato tutto bene.

2 Mi Piace

Mi scuso, a un secondo sguardo sembra che stia fallendo nel mio codice, ma ci sto accedendo in after_initialize

Sembra che le regole potrebbero essere cambiate:

user_count = User.count

non sembra più legale in un inizializzatore (forse è sempre stata una cattiva pratica)

grazie per il suggerimento! :clap:

Penso che tu abbia assolutamente ragione sul fatto che dovrei spostare questo in un job ed eseguirlo una volta. :+1:

1 Mi Piace

Nessun problema, sono contento che tu sia riuscito a farlo funzionare!

1 Mi Piace