Onverwachte fout in Discourse Plugin CI

UPDATE: @NateDhaliwal rightfully points out my accessing the DB in after_initializer may break the rules - I was just lucky for a long time.

I’m going to make some changes.

I’m getting:

ActiveRecord::NoDatabaseError: We could not find your database: discourse_test. Available database configurations can be found in config/database.yml. (ActiveRecord::NoDatabaseError)
detail
rake aborted!
ActiveRecord::NoDatabaseError: We could not find your database: discourse_test. Available database configurations can be found in config/database.yml. (ActiveRecord::NoDatabaseError)
To resolve this error:
- Did you not create the database, or did you delete it? To create the database, run:
    bin/rails db:create
- Has the database name changed? Verify that config/database.yml contains the correct database name.
/__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'

in my github workflow

Has something changed around the standard plugin CI workflow I wasn’t aware of?

I’m still following:

and using v1

There is no code of mine running up to this point (except gem installs) and this PR has in any case just minor config changes.

PS Looks like it’s been evolving recently: History for .github/workflows/discourse-plugin.yml - discourse/.github · GitHub

2 likes

Niet 100% zeker, maar ik denk dat het gebeurt als je ActiveRecord gebruikt via dingen als User, etc. openlijk, bijvoorbeeld niet in on() of in een job, maar gewoon in after_initialize.

Ik ben dit ook niet zo lang geleden tegengekomen… Als ik me goed herinner, moest ik AI vragen om dit; ik heb de code naar een geplande taak verplaatst en daarna was het prima.

2 likes

Apologies, on second look it does seem to be failing on my code, but I am accessing it in after_initialize

Looks like the rules might have changed:

user_count = User.count

doesn’t look legal in an initializer anymore (perhaps it was always bad practice)

thanks for the suggestion! :clap:

I think you are absolutely right that I should move this to a job and run it once. :+1:

1 like

Geen probleem, blij dat het gelukt is!

1 like