Как мне сделать ActiveRecord :: Schema.define не входить в стандартный вывод? - PullRequest
6 голосов
/ 20 марта 2012

Я не вижу этого в документации, но полагаю, что это решенная проблема.

Я использую ActiveRecord вне Rails, и мой скрипт загружает schema.rb, выгруженный из другого приложения.Я хочу загрузить эту схему без выгрузки вывода миграции на стандартный вывод, но замена ActiveRecord :: Base.logger не закрывает ее.Что я должен переопределить, чтобы остановить шум?

Ответы [ 2 ]

8 голосов
/ 20 марта 2012

Похоже, дело в ActiveRecord :: Миграция:

ActiveRecord::Migration.verbose = false

Это делает миграцию не выводящей информацию в $ stdout. Существует удобный метод-обертка .suppress_messages, который вы можете использовать так:

ActiveRecord::Migration.suppress_messages do
  load("path/to/schema.rb")
end

И да, это задокументировано в разделе Миграция (но не в Схеме, где я искал).

0 голосов
/ 20 марта 2012

возможно

ActiveRecord::Base.logger = begin
  l = Logger.new('/dev/null')
  l.level = Logger::FATAL
  l
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...