2012-04-28 2 views
0

Я пишу приложение, которое использует MySQL в качестве «нестандартного» способа, так сказать. Он в значительной степени зависит от динамически созданных/удаленных таблиц.Как подавить журнал DDL

Пока он функционирует должным образом. Спекуляции меня не радуют. Всякий раз, когда я запускаю их, я получаю тонны сообщений журнала ddl activerecord. Посмотрите сами:

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

(удален код с методом ядра, который манипулирует $stdout)

Это был ActiveRecord, в конце концов. Кажется, что если вы определяете миграцию «новым» способом (с использованием метода change вместо up/down), он не будет спамить вас столько же. Во всяком случае, у него есть аналогичный метод, но он манипулирует многословием миграции, а не $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 
+0

Там должен быть лучшим способом. Вы знаете, кто производит эти сообщения? Это ActiveRecord или драйвер MySQL? –

+0

Я пока не узнал. Отсюда это быстрое и грязное решение. –

+0

Хм, у меня есть идея. –

Смежные вопросы