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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |