2012-04-28 10 views
0

私は「標準ではない」方法でMySQLを使用するアプリケーションを作成しています。動的に作成/削除されたテーブルに大きく依存しています。DDLログを抑制する方法

これまでのところ、正常に機能しています。スペックは私を幸せにしません。私がそれらを実行するたびに、私はたくさんのactiverecordのddlログメッセージを取得します。あなた自身のために見てください:

SqlDailyEvents 
-- create_table("11_daily_events_20120428") 
    -> 0.0032s 
    should create and drop a table 
-- create_table("11_daily_events_20120428") 
    -> 0.0030s 
    should not create the same table twice 
    should not drop the same table twice 

これは--format dです。 --format pではさらに悪化します。

どうすればいいですか?このログはActiveRecord::Base.logger(これはnilに設定しようとしました)の影響を受けていないようです。

答えて

1

それは結局、のActiveRecordた

を($stdoutを操作するカーネル法を使用してコードを削除)。移行を「新しい」方法(up/downのペアではなくchangeの方法で)と定義すると、それほどあなたを迷惑させないようです。とにかく、それは同様の方法を持っていますが、$stdoutではなく、Migrationの冗長性を操作します。

def up 
    # built-in method. sets verbose flag to false 
    suppress_messages do 
     create_table table_name do |t| 
     t.column :username, :string 
     end 
    end 
    end 
+0

もっと良い方法がなければならない:

今、私のコードは次のようになります。あなたはそのメッセージを誰が作成しているのか知っていますか? ActiveRecordかMySQLドライバですか? –

+0

これまでに私は見つけられませんでした。したがって、この迅速かつ汚れたソリューション。 –

+0

私は考えがあります。 –

関連する問題