你怎么能抑制分贝的输出:负载:架构? 运行
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
我喜欢silence_stream(STDOUT)
来quietly
,因为这将仍然允许写入错误消息STDERR
中显示,这将是有益的,当耙命令开始行动起来。
参考文献: silence_stream , silence_warnings ,与静静
而不是调用与任务的Rake::Task['...'].invoke
,您可以在子shell中运行的命令,将输出重定向到/dev/null
。
system "bundle exec rake db:schema:load > /dev/null 2>&1"