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方法而不是up/down对),它不会向您发送太多垃圾邮件。无论如何,它有一个类似的方法,但它操纵了 Migration 的冗长,而不是$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 回答