我在文档中看不到这一点,但我认为这是一个已解决的问题。
我在Rails之外使用ActiveRecord,我的脚本加载从另一个应用程序转储的schema.rb。我想加载此架构而不将迁移输出转储到stdout,但替换ActiveRecord :: Base.logger不会将其关闭。我最重要的是要阻止噪音?
答案 0 :(得分:8)
诀窍显然是在ActiveRecord :: Migration中:
ActiveRecord::Migration.verbose = false
这使得迁移不是输出信息到$ stdout。有一个名为.suppress_messages的便捷包装方法,您可以这样使用:
ActiveRecord::Migration.suppress_messages do
load("path/to/schema.rb")
end
是的,这是在迁移下记录的(但不是Schema,我正在寻找)。
答案 1 :(得分:0)
也许
ActiveRecord::Base.logger = begin
l = Logger.new('/dev/null')
l.level = Logger::FATAL
l
end