LoadError: 无法加载文件 -- jobs/regular/export_csv_file

我正在尝试为我的多站点设置添加另一个站点(我使用了 Setup Multisite Configuration with Let's Encrypt and no Reverse Proxy 来进行设置)。

当我尝试添加额外的站点时,我运行 ./launcher rebuild data,它运行正常,但在运行 ./launcher rebuild web_only 时,我遇到了以下错误:

FAILED
--------------------
Pups::ExecError: cd /var/www/discourse & su discourse -c 'bundle exec rake db:migrate' failed with return #<Process::Status: pid 955 exit 1>
Location of failure: /usr/local/lib/ruby/gems/2.7.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn'
exec failed with the params {"cd"=>"$home", "hook"=>"db_migrate", "cmd"=>["su discourse -c 'bundle exec rake db:migrate'"]}
8f0613418f5fed4e82de31b268e364dbf6345c8e736ea26ad2f7f87cd0f37f2d
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.
./discourse-doctor may help diagnose the problem.

当我查找更早的错误消息时,我发现了这个:

I, [2022-03-29T19:47:39.173931 #1]  INFO -- : > cd /var/www/discourse & su discourse -c 'bundle exec rake db:migrate'
rake aborted!
LoadError: cannot load such file -- jobs/regular/export_csv_file
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/bootsnap-1.11.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:15:in `require'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/bootsnap-1.11.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:15:in `require'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/zeitwerk-2.5.4/lib/zeitwerk/kernel.rb:35:in `require'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.1.4.7/lib/active_support/dependencies/zeitwerk_integration.rb:51:in `require_dependency'
/var/www/discourse/lib/require_dependency_backward_compatibility.rb:18:in `require_dependency'
/var/www/discourse/plugins/discourse-legal-tools/plugin.rb:13:in `block in activate!'
/var/www/discourse/lib/plugin/instance.rb:486:in `block in notify_after_initialize'
/var/www/discourse/lib/plugin/instance.rb:484:in `each'
/var/www/discourse/lib/plugin/instance.rb:484:in `notify_after_initialize'
/var/www/discourse/config/application.rb:360:in `each'
/var/www/discourse/config/application.rb:360:in `block (2 levels) in <class:Application>'
/var/www/discourse/lib/plugin_initialization_guard.rb:5:in `plugin_initialization_guard'
/var/www/discourse/config/application.rb:359:in `block in <class:Application>'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.1.4.7/lib/active_support/lazy_load_hooks.rb:68:in `block in execute_hook'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.1.4.7/lib/active_support/lazy_load_hooks.rb:61:in `with_execution_control'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.1.4.7/lib/active_support/lazy_load_hooks.rb:66:in `execute_hook'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.1.4.7/lib/active_support/lazy_load_hooks.rb:52:in `block in run_load_hooks'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.1.4.7/lib/active_support/lazy_load_hooks.rb:51:in `each'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/activesupport-6.1.4.7/lib/active_support/lazy_load_hooks.rb:51:in `run_load_hooks'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/railties-6.1.4.7/lib/rails/application/finisher.rb:140:in `block in <module:Finisher>'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/railties-6.1.4.7/lib/rails/initializable.rb:32:in `instance_exec'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/railties-6.1.4.7/lib/rails/initializable.rb:32:in `run'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/railties-6.1.4.7/lib/rails/initializable.rb:61:in `block in run_initializers'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/railties-6.1.4.7/lib/rails/initializable.rb:60:in `run_initializers'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/railties-6.1.4.7/lib/rails/application.rb:391:in `initialize!'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/railties-6.1.4.7/lib/rails/application.rb:533:in `block in run_tasks_blocks'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.6/exe/rake:27:in `<top (required)>'
/usr/local/bin/bundle:25:in `load'
/usr/local/bin/bundle:25:in `<main>'
Tasks: TOP => db:migrate => db:load_config => environment
(See full trace by running task with --trace)

当我删除 data.ymlweb_only.yml 中添加的额外站点信息以在没有新站点的情况下进行测试时,重建工作正常。

我尝试注释掉插件,但 web_only 重建仍然不起作用——我会收到其他关于新数据库中缺少与插件相关的某些列的错误。

有什么关于可能发生的情况的想法吗?

您可以尝试在容器内手动将新站点添加到 multisite.yml,然后运行 multisite migrate rake 任务。

您能否在不添加新站点的情况下重建 web_only?

您正在运行第三方插件。尝试在不使用它的情况下重新构建。

1 个赞

以为可以,但刚意识到我可以在不使用新站点并且注释掉所有插件的情况下重建它。当我尝试在不使用新站点并且使用插件的情况下重建时,它不起作用。

我认为答案就在跟踪信息中,但我只是没看到:/var/www/discourse/plugins/discourse-legal-tools/plugin.rb:13:in block in activate!

……正如 @Falco 在这里指出的:

我已经禁用了 https://meta.discourse.org/t/legal-tools-plugin/87966,现在我可以在不使用新站点的情况下进行重建,也可以使用新站点进行重建。

我尝试重建一个我拥有的单一安装,它只使用一个 app.yml 文件,并且在 legal tools 插件的情况下也失败了。

所以这似乎是冲突点,但不确定它在哪里冲突。

1 个赞

感谢您的报告。核心 discourse 中的文件已更改,导致 legal tools 插件损坏。我将在下周初有时间更新它。

1 个赞

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