我正在编写一个以“非标准”方式使用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
)的影响。
答案 0 :(得分: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