2012-03-20 16 views
5

私はこれをドキュメントで見ることはできませんが、私はそれが解決された問題だと考えています。ActiveRecord :: Schema.defineをstdoutに記録しない方法を教えてください。

私はRailsの外でActiveRecordを使用しています。私のスクリプトは別のアプリからダンプされたschema.rbを読み込みます。移行出力をstdoutにダンプしないでこのスキーマをロードしたいのですが、ActiveRecord :: Base.loggerの代わりにそれをシャットダウンしません。騒音を止めるにはどうすればいいですか?

答えて

8

トリックはActiveRecordの::移行に明らかである:

ActiveRecord::Migration.verbose = false 

これは、$ stdoutに移行しませ出力情報になります。

ActiveRecord::Migration.suppress_messages do 
    load("path/to/schema.rb") 
end 

そして、はい、これは(ただし、私が探していたスキーマ、下の)移行の下で文書化された:あなたはこのように使用することができます.suppress_messagesと呼ばれる便利なラッパー方法は、あります。

0

多分

ActiveRecord::Base.logger = begin 
    l = Logger.new('/dev/null') 
    l.level = Logger::FATAL 
    l 
end 
+0

いいえこれを試しました。 ActiveRecord :: Base.loggerを置き換えても、それをシャットダウンしません。 – regularfry

+0

Hm。私はそれを少し編集しました。 – fl00r

+0

これは試しましたか? – regularfry

関連する問題