加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 在Rake任务db:schema:load中抑制输出

发布时间:2020-12-16 20:56:47 所属栏目:百科 来源:网络整理
导读:如何抑制db:load:schema的输出?运行 bundle exec rake db:schema:load 使用-s,-q或甚至VERBOSE = false选项在输出中没有区别;我不想看到同样的“create_table … add_index …”垃圾.我在自定义Rake任务中调用它,我不希望用户每次都看到所有这些. 更新:
如何抑制db:load:schema的输出?运行
bundle exec rake db:schema:load

使用-s,-q或甚至VERBOSE = false选项在输出中没有区别;我不想看到同样的“create_table … add_index …”垃圾.我在自定义Rake任务中调用它,我不希望用户每次都看到所有这些.

更新:

我使用@Deefour的一些指导解决了这个问题:

system "bundle exec rake db:schema:load -s RAILS_ENV=#{Rails.env} >NUL"

> NUL适用于Windows机器,基于Unix的可以使用>的/ dev / null的.

而不是

Rake::Task['db:schema:load'].invoke

正如我在自定义任务中所做的那样.请注意,此解决方案特定于Windows计算机.对于基于Unix的机器,我想你应该能够使用下面接受的解决方案.

解决方法

这是一个跨系统工作的更清洁的解决方案:
silence_stream(STDOUT) do
  # anything written to STDOUT here will be silenced
  Rake::Task["db:schema:load"].invoke
end

quietly do
  # anything written to STDOUT or STDERR here will be silenced
  Rake::Task["db:schema:load"].invoke
end

我更喜欢silent_stream(STDOUT),因为它仍然允许显示写入STDERR的错误消息,这在rake命令开始动作时会很有用.

参考文献:silence_stream,silence_warnings,& quietly

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读