agu*_*les 8 windows rake ruby-on-rails ruby-on-rails-3
如何抑制db:load:schema的输出?运行
bundle exec rake db:schema:load
Run Code Online (Sandbox Code Playgroud)
用-s,-q或甚至VERBOSE=false选项使得在输出没有差别; 我不想看的相同的"create_table ... add_index ..."垃圾出现了.我从自定义Rake任务中调用它,我不希望用户每次都看到所有这些.
更新:
我使用@Deefour的一些指导解决了这个问题:
system "bundle exec rake db:schema:load -s RAILS_ENV=#{Rails.env} >NUL"
Run Code Online (Sandbox Code Playgroud)
>NUL适用于Windows机器,基于Unix可以使用> /dev/null.
而不是
Rake::Task['db:schema:load'].invoke
Run Code Online (Sandbox Code Playgroud)
正如我在自定义任务中所做的那样.请注意,此解决方案特定于Windows计算机.对于基于Unix的机器,我想你应该能够使用下面接受的解决方案.
lig*_*h05 27
这是一个跨系统工作的更清洁的解决方案:
silence_stream(STDOUT) do
# anything written to STDOUT here will be silenced
Rake::Task["db:schema:load"].invoke
end
Run Code Online (Sandbox Code Playgroud)
也
quietly do
# anything written to STDOUT or STDERR here will be silenced
Rake::Task["db:schema:load"].invoke
end
Run Code Online (Sandbox Code Playgroud)
我喜欢silence_stream(STDOUT)到quietly,因为它仍然会允许写入错误信息STDERR中显示,这将是有益的,当耙命令开始行动起来.
参考文献:silence_stream,silence_warnings,悄悄地
| 归档时间: |
|
| 查看次数: |
4070 次 |
| 最近记录: |