0

いわば「非標準」の方法で MySQL を使用するアプリを作成しています。動的に作成/削除されたテーブルに大きく依存しています。

これまでのところ、正常に機能しています。ただ、スペックは満足できるものではありません。それらを実行するたびに、大量の 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です。

4

1 に答える 1

1

カーネルメソッドを操作するコードを削除$stdout

結局のところ、それは ActiveRecord でした。移行を「新しい」方法で ( /ペアchangeの代わりにメソッドを使用して) 定義すると、それほどスパムにならないようです。とにかく、同様の方法がありますが、Migration ではなく、Migration の冗長性を操作します。updown$stdout

今私のコードは次のようになります:

  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
于 2012-04-28T01:36:09.393 に答える