vBulletin导入Discourse执行脚本时遇Redis::Client错误如何解决?
解决vBulletin迁移Discourse时的Redis::Client错误
这个错误源于rack-mini-profiler版本与Redis客户端版本不兼容——rack-mini-profiler尝试为Redis::Client添加call方法的别名,但当前Redis客户端版本不存在该方法。可以通过以下方式解决:
临时禁用rack-mini-profiler的Redis监控:
编辑Discourse目录下的config/initializers/006-mini_profiler.rb文件,找到类似如下的代码:Rack::MiniProfiler.profile_method(Redis::Client, :call)将其注释掉,或者用环境判断包裹,避免在迁移时加载:
unless defined?(ImportScripts::Base) Rack::MiniProfiler.profile_method(Redis::Client, :call) end更新兼容的依赖版本:
在Discourse目录下执行命令更新rack-mini-profiler到兼容版本:bundle update rack-mini-profiler完成后重新运行迁移脚本。
指定生产环境执行迁移:
执行迁移脚本时指定RAILS_ENV为production,避免加载开发环境的性能分析工具:RAILS_ENV=production bundle exec ruby script/import_scripts/vbulletin.rb
内容的提问来源于stack exchange,提问作者Joker Star
相关产品推荐
相关产品推荐

