Comment puis-je enregistrer toutes les instructions SQL exécutées sur la console/stdout lors de l'utilisation de Ruby MySQL?Ruby MySQL consigne toutes les instructions sur stdout/console
Comme la sortie log/development.log des rails.
Comment puis-je enregistrer toutes les instructions SQL exécutées sur la console/stdout lors de l'utilisation de Ruby MySQL?Ruby MySQL consigne toutes les instructions sur stdout/console
Comme la sortie log/development.log des rails.
Si vous voulez dire Ruby/MySQL, qui fournit une fonction debug() qui effectue la même fonction que mysql_debug() - si votre bibliothèque client a été compilé avec le débogage, vous peut obtenir DBUG to trace things pour vous. Cela pourrait donner ce que vous cherchez (avec un peu de nettoyage.)
Une autre approche serait de capture the MySQL packets using tcpdump and decode them with maatkit.
Une troisième approche consisterait à alias Mysql.query and Mysql.real_query with your own functions qui effectue une journalisation. Quelque chose comme ça (non testé! Exemple trivial! Ne gère pas les blocs!):
class Mysql
alias_method :old_query, :query
def query(sql)
$stderr.puts "SQL: #{sql}"
old_query(sql)
end
end
Rails utilise des ORM comme ActiveRecord auquel est associé son enregistreur. Je ne pense pas gem MySQL a un enregistreur ...