如何让ActiveRecord :: Schema.define不登录到stdout?

reg*_*fry 6 ruby activerecord ruby-on-rails

我在文档中看不到这一点,但我认为这是一个已解决的问题.

我在Rails之外使用ActiveRecord,我的脚本加载从另一个应用程序转储的schema.rb.我想加载此架构而不将迁移输出转储到stdout,但替换ActiveRecord :: Base.logger不会将其关闭.我最重要的是要阻止噪音?

reg*_*fry 8

诀窍显然是在ActiveRecord :: Migration中:

ActiveRecord::Migration.verbose = false
Run Code Online (Sandbox Code Playgroud)

这使得迁移不是输出信息到$ stdout.有一个名为.suppress_messages的便捷包装方法,您可以像这样使用:

ActiveRecord::Migration.suppress_messages do
  load("path/to/schema.rb")
end
Run Code Online (Sandbox Code Playgroud)

是的,这是在迁移下记录的(但不是Schema,我在寻找).