Wie man Datenbankfehler in einem veralteten Plugin behebt?

Ich bin neu in der Entwicklung von Discourse-Plugins und möchte zu Beginn dieses Quiz-Plugins für die neueste Version von Discourse aktualisieren.

Wenn es keine Umstände macht, könnte ich Hilfe bei der Fehlersuche für diesen Fehler gebrauchen, der auftritt, wenn ich versuche, ein Thema zu erstellen oder anzuzeigen, während das Plugin aktiviert ist:

Nachricht

Job-Ausnahme: PG::UndefinedTable: FEHLER:  Relation „quizzes“ existiert nicht
ZEILE 9:  WHERE a.attrelid = '\"quizzes\"'::regclass
                            ^


Stacktrace

rack-mini-profiler-3.3.0/lib/patches/db/pg.rb:110:in `exec'
rack-mini-profiler-3.3.0/lib/patches/db/pg.rb:110:in `async_exec'
activerecord-7.0.8/lib/active_record/connection_adapters/postgresql/database_statements.rb:19:in `block (2 levels) in query'
activesupport-7.0.8/lib/active_support/concurrency/share_lock.rb:187:in `yield_shares'
activesupport-7.0.8/lib/active_support/dependencies/interlock.rb:41:in `permit_concurrent_loads'
activerecord-7.0.8/lib/active_record/connection_adapters/postgresql/database_statements.rb:18:in `block in query'
activesupport-7.0.8/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `handle_interrupt'
activesupport-7.0.8/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `synchronize'
activesupport-7.0.8/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `handle_interrupt'
activesupport-7.0.8/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `synchronize'

Gibt es häufige Probleme, auf die ich achten sollte, die dazu führen könnten, dass die Relation nicht existiert? Würden sich solche Probleme typischerweise in /db finden?

Falls relevant: Ich verwende die Docker-Entwicklungsumgebung unter Linux, wie in dieser Anleitung beschrieben, und Sie können sehen, was ich bisher getan habe hier.

Sieht so aus, als hätten Sie keine Migrationen ausgeführt.

Sie benötigen eine zusätzliche Umgebungsvariable, um diese für Plugins auszuführen. Weitere Informationen finden Sie unter:

2 „Gefällt mir“

Vielen Dank für die schnelle Antwort! Ich habe gerade d/migrate bemerkt, was das Problem nach der Ausführung zu beheben schien. Wie verhält sich das zu LOAD_PLUGINS=1 RAILS_ENV=test rake db:migrate?

d/migrate ist ein Docker-Skript-Wrapper.

Der Befehl, den ich geteilt habe, ist der eigentliche Rails-Befehl, der ausgeführt wird.

Alternativ können Sie in den laufenden Container wechseln und den Rails-Befehl ausführen.

(Aber ja, Sie müssen nicht die Testumgebung anvisieren!)

Klingt gut! Danke für die Hilfe.

Ich habe d/migrate geöffnet und gesehen, dass es alles von dem Befehl enthält, den du geteilt hast, außer LOAD_PLUGINS=1. Ich bin mir nicht sicher, warum es ohne das funktioniert hat, aber das ist für mich in Ordnung.

2 „Gefällt mir“

Guter Mann!

Es ist immer gut, die Abdeckung anzuheben! Viele Leute lesen einfach nicht den Quellcode, und das ist oft hilfreicher, als man denkt!

Ja, das ist eine interessante Unterscheidung – ich frage mich, ob es nur notwendig ist, wenn man dies für die Testumgebung tut :denkend:

2 „Gefällt mir“

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.