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

2 „Gefällt mir“

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.

2 „Gefällt mir“

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:

1 „Gefällt mir“

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

1 „Gefällt mir“