无法安装 Data Explorer Plugin 最新版本

你好,

我被卡在这里好几天了,有谁能帮忙吗!

当我尝试在我的 Discourse 实例上安装最新版本的 Data Explorer 时,我收到了以下错误:

NameError: uninitialized constant BaseBookmarkable
/opt/bitnami/discourse/plugins/discourse-data-explorer/lib/data_explorer_query_group_bookmarkable.rb:3:in `<main>'
/opt/bitnami/discourse/vendor/bundle/ruby/2.7.0/gems/bootsnap-1.9.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:60:in `load'
/opt/bitnami/discourse/vendor/bundle/ruby/2.7.0/gems/bootsnap-1.9.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:60:in `load'
/opt/bitnami/discourse/plugins/discourse-data-explorer/plugin.rb:878:in `block in activate!'
/opt/bitnami/discourse/lib/plugin/instance.rb:478:in `block in notify_after_initialize'
/opt/bitnami/discourse/lib/plugin/instance.rb:476:in `each'
/opt/bitnami/discourse/lib/plugin/instance.rb:476:in `notify_after_initialize'
/opt/bitnami/discourse/config/application.rb:364:in `each'
/opt/bitnami/discourse/config/application.rb:364:in `block (2 levels) in <class:Application>'
/opt/bitnami/discourse/lib/plugin_initialization_guard.rb:5:in `plugin_initialization_guard'
/opt/bitnami/discourse/config/application.rb:363:in `block in <class:Application>'
/opt/bitnami/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.1.6.1/lib/active_support/lazy_load_hooks.rb:68:in `block in execute_hook'
/opt/bitnami/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.1.6.1/lib/active_support/lazy_load_hooks.rb:61:in `with_execution_control'
/opt/bitnami/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.1.6.1/lib/active_support/lazy_load_hooks.rb:66:in `execute_hook'
/opt/bitnami/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.1.6.1/lib/active_support/lazy_load_hooks.rb:52:in `block in run_load_hooks'
/opt/bitnami/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.1.6.1/lib/active_support/lazy_load_hooks.rb:51:in `each'
/opt/bitnami/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.1.6.1/lib/active_support/lazy_load_hooks.rb:51:in `run_load_hooks'
/opt/bitnami/discourse/vendor/bundle/ruby/2.7.0/gems/railties-6.1.6.1/lib/rails/application/finisher.rb:140:in `block in <module:Finisher>'
/opt/bitnami/discourse/vendor/bundle/ruby/2.7.0/gems/railties-6.1.6.1/lib/rails/initializable.rb:32:in `instance_exec'
/opt/bitnami/discourse/vendor/bundle/ruby/2.7.0/gems/railties-6.1.6.1/lib/rails/initializable.rb:32:in `run'
/opt/bitnami/discourse/vendor/bundle/ruby/2.7.0/gems/railties-6.1.6.1/lib/rails/initializable.rb:61:in `block in run_initializers'
/opt/bitnami/discourse/vendor/bundle/ruby/2.7.0/gems/railties-6.1.6.1/lib/rails/initializable.rb:60:in `run_initializers'
/opt/bitnami/discourse/vendor/bundle/ruby/2.7.0/gems/railties-6.1.6.1/lib/rails/application.rb:391:in `initialize!'
/opt/bitnami/discourse/vendor/bundle/ruby/2.7.0/gems/railties-6.1.6.1/lib/rails/railtie.rb:207:in `public_send'
/opt/bitnami/discourse/vendor/bundle/ruby/2.7.0/gems/railties-6.1.6.1/lib/rails/railtie.rb:207:in `method_missing'
/opt/bitnami/discourse/config/environment.rb:7:in `<main>'
/opt/bitnami/discourse/vendor/bundle/ruby/2.7.0/gems/bootsnap-1.9.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require'
/opt/bitnami/discourse/vendor/bundle/ruby/2.7.0/gems/bootsnap-1.9.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `block in require_with_bootsnap_lfi'
/opt/bitnami/discourse/vendor/bundle/ruby/2.7.0/gems/bootsnap-1.9.4/lib/bootsnap/load_path_cache/loaded_features_index.rb:88:in `register'
/opt/bitnami/discourse/vendor/bundle/ruby/2.7.0/gems/bootsnap-1.9.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require_with_bootsnap_lfi'
/opt/bitnami/discourse/vendor/bundle/ruby/2.7.0/gems/bootsnap-1.9.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:31:in `require'
/opt/bitnami/discourse/vendor/bundle/ruby/2.7.0/gems/railties-6.1.6.1/lib/rails/application.rb:367:in `require_environment!'
/opt/bitnami/discourse/vendor/bundle/ruby/2.7.0/gems/railties-6.1.6.1/lib/rails/application.rb:533:in `block in run_tasks_blocks'
/opt/bitnami/discourse/vendor/bundle/ruby/2.7.0/gems/sprockets-rails-3.4.2/lib/sprockets/rails/task.rb:61:in `block (2 levels) in define'
/opt/bitnami/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.6/exe/rake:27:in `<top (required)>'
/opt/bitnami/ruby/bin/bundle:25:in `load'
/opt/bitnami/ruby/bin/bundle:25:in `<main>'
Tasks: TOP => environment

我认为这是在 @frank.manuel 提交了关于 新功能:可书签化的查询组 的内容后发生的。

我尝试回滚到旧的提交,正如 @VladChad 在回答中提到的,这有助于安装和激活插件,但当我转到路径 “/admin/plugins/explorer/queries” 时,我收到了一个新的 500 错误(日志如下)。

Started GET "/admin/plugins/explorer/queries" for 192.168.50.1 at 2022-09-08 16:16:36 +0000
Processing by DataExplorer::QueryController#index as JSON
Completed 500 Internal Server Error in 17ms (ActiveRecord: 0.0ms | Allocations: 1368)
ActiveRecord::StatementInvalid (PG::UndefinedTable: ERROR:  relation "data_explorer_queries" does not exist
LINE 8:  WHERE a.attrelid = '"data_explorer_queries"'::regclass
                            ^
)
app/controllers/application_controller.rb:387:in `block in with_resolved_locale'
app/controllers/application_controller.rb:387:in `with_resolved_locale'
lib/middleware/omniauth_bypass_middleware.rb:71:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:361:in `call'
config/initializers/100-quiet_logger.rb:23:in `call'
config/initializers/100-silence_logger.rb:31:in `call'
lib/middleware/enforce_hostname.rb:23:in `call'
lib/middleware/request_tracker.rb:198:in `call'
Failed to handle exception in exception app middleware : PG::UndefinedTable: ERROR:  relation "data_explorer_queries" does not exist
LINE 8:  WHERE a.attrelid = '"data_explorer_queries"'::regclass

此致,

您的 app.yml 文件指定了哪个版本的 discourse?您是否正在运行 tests-passed

1 个赞

我正在使用最新的 Discourse by Bitnami release 2.8.8-debian-11-r9

恐怕我们无法在此支持 Bitnami 安装。您的出现问题很有可能是因为 Bitnami 的构建落后于官方版本。

您可以联系 Bitnami 获取支持,但我建议您备份并切换到标准安装。从长远来看,这将为您省去很多麻烦。

4 个赞

问题在于 Data Explorer 的实际版本(主分支)与 Discourse 2.8.8 不兼容;我已尝试过标准安装和 Bitnami 安装。

最后,我找到了在 Discourse Bitnami 上安装插件的解决方案:

cd /opt/bitnami/discourse
sudo RAILS_ENV=production bundle exec rake plugin:install repo=PLUGIN_REPO_URL
...
RAILS_ENV=production LOAD_PLUGINS=0 bundle exec rake plugin:pull_compatible_all
RAILS_ENV=production bundle exec rake db:migrate
RAILS_ENV=production bundle exec rake themes:update assets:precompile

最后 3 条命令的目的是:

  • 检查插件与已安装 Discourse 版本的兼容性,并为每个指定的插件拉取最后一个兼容版本
  • 如果有插件需要,执行数据库迁移
  • 更新主题并编译资源

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