Unerwarteter Fehler in CI

UPDATE: @NateDhaliwal weist zu Recht darauf hin, dass mein Zugriff auf die DB in after_initializer die Regeln brechen könnte – ich hatte einfach lange Glück.

Ich werde einige Änderungen vornehmen.

Ich erhalte:

ActiveRecord::NoDatabaseError: Wir konnten Ihre Datenbank nicht finden: discourse_test. Verfügbare Datenbankkonfigurationen finden Sie in config/database.yml. (ActiveRecord::NoDatabaseError)
detail
rake aborted!
ActiveRecord::NoDatabaseError: Wir konnten Ihre Datenbank nicht finden: discourse_test. Verfügbare Datenbankkonfigurationen finden Sie in config/database.yml. (ActiveRecord::NoDatabaseError)
Um diesen Fehler zu beheben:
- Haben Sie die Datenbank nicht erstellt oder sie gelöscht? Um die Datenbank zu erstellen, führen Sie aus:
    bin/rails db:create
- Hat sich der Datenbankname geändert? Überprüfen Sie, ob config/database.yml den korrekten Datenbanknamen enthält.
/__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 meinem GitHub Workflow

Hat sich etwas am Standard-Plugin-CI-Workflow geändert, von dem ich nichts wusste?

Ich folge immer noch:

und verwende v1

Bis zu diesem Zeitpunkt läuft kein Code von mir (außer Gem-Installationen) und dieser PR enthält ohnehin nur geringfügige Konfigurationsänderungen.

PS Es scheint, dass er sich kürzlich weiterentwickelt hat: History for .github/workflows/discourse-plugin.yml - discourse/.github · GitHub

Nicht 100% sicher, aber ich glaube, es passiert, wenn man ActiveRecord über Dinge wie User usw. offen verwendet, z. B. nicht in on() oder in einem Job, sondern nur in after_initialize.

Ich bin dem vor nicht allzu langer Zeit auch begegnet… Ich meine, ich musste die KI danach fragen; ich habe den Code in einen geplanten Job verschoben und danach war es in Ordnung.

Entschuldigung, bei genauerem Hinsehen scheint es doch an meinem Code zu scheitern, aber ich greife darauf in after_initialize zu

Es sieht so aus, als hätten sich die Regeln geändert:

user_count = User.count

ist in einem Initializer nicht mehr zulässig (vielleicht war es schon immer schlechte Praxis)

Danke für den Vorschlag! :clap:

Ich denke, Sie haben absolut Recht, dass ich dies in einen Job verschieben und einmal ausführen sollte. :+1:

Kein Problem, ich freue mich, dass es funktioniert hat!