古いプラグインのデータベースエラーをトラブルシューティングするには?

Discourse プラグイン開発は初めてで、まずはこの quiz プラグイン を最新バージョンの Discourse で動作するように更新しようとしています。

もし差し支えなければ、プラグインが有効な状態でトピックを作成または表示しようとすると発生するこのエラーのトラブルシューティング方法について、いくつか助言をいただけないでしょうか。

Message

Job exception: PG::UndefinedTable: ERROR:  relation "quizzes" does not exist
LINE 9:  WHERE a.attrelid = '"quizzes"'::regclass
                            ^


Backtrace

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 `block 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'

リレーションが存在しない原因として、何か一般的な問題点を探すべきでしょうか?それらの問題は通常 /db 内で見つかるものでしょうか?

参考までに、Linux 上の Docker 開発環境を使用しており、この ガイド に記載されている通りです。ここ here で、これまでの作業内容を確認できます。

マイグレーションを実行していないようです。

プラグインを実行するには追加の環境変数が必要です。以下を参照してください。

「いいね!」 2

迅速な返信ありがとうございます! d/migrate を見つけたのですが、実行したところ問題が解決したようです。これは LOAD_PLUGINS=1 RAILS_ENV=test rake db:migrate と比較してどうなのでしょうか?

d/migrate は Docker スクリプトのラッパーです。

共有したコマンドは、実際に実行される Rails コマンドです。

または、実行中のコンテナに入り、Rails コマンドを実行することもできます。

(ただし、テスト環境を対象にする必要はありません!)

いいですね!ご協力ありがとうございます。

d/migrate を開いて、共有していただいたコマンドのすべてが含まれていることを確認しましたが、LOAD_PLUGINS=1 はありませんでした。なぜそれがなくても機能したのかはわかりませんが、私にとってはそれで問題ありません。

「いいね!」 2

良い男だ!

カバーをめくるのはいつでも良いことだ!多くの人はソースコードを読まないが、それはあなたが思っている以上に役立つことが多い!

はい、それは興味深い区別です。テスト環境でこれを行う場合にのみ必要なのでしょうか :thinking:

「いいね!」 2

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