Ruby MySQL записывает все операторы в стандартный вывод / консоль - PullRequest
1 голос
/ 12 ноября 2009

Как я могу записать все выполненные операторы SQL на консоль / стандартный вывод при использовании Ruby MySQL?

Как вывод log / development.log с рельсов.

Ответы [ 2 ]

1 голос
/ 13 ноября 2009

Если вы имеете в виду Ruby / MySQL , это обеспечивает функцию debug (), которая выполняет ту же функцию, что и mysql_debug () - если ваша клиентская библиотека была скомпилирована с отладкой, Вы можете получить DBUG для отслеживания вещей для вас. Это может дать то, что вы после (с небольшой очисткой.)

Другой подход заключается в захвате пакетов MySQL с использованием tcpdump и декодировании их с помощью maatkit .

Третий подход заключается в псевдонимах Mysql.query и Mysql.real_query с вашими собственными функциями , которые выполняют ведение журнала. Примерно так ( непроверенный ! Тривиальный пример! Не обрабатывает блоки!):

class Mysql
  alias_method :old_query, :query
  def query(sql)
    $stderr.puts "SQL: #{sql}"
    old_query(sql)
  end
end
0 голосов
/ 12 ноября 2009

Rails использует ORM, такие как ActiveRecord, с которым связан его регистратор. Я не думаю, что MySQL Gem имеет регистратор ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...