Similar al servidor 'rails' que imprime todas las consultas SQL ejecutadas, me gustaría hacer lo mismo para las tareas de rake.¿Es posible registrar consultas sql en tareas de rake?
¿Cuál es la mejor manera de lograr esto?
Similar al servidor 'rails' que imprime todas las consultas SQL ejecutadas, me gustaría hacer lo mismo para las tareas de rake.¿Es posible registrar consultas sql en tareas de rake?
¿Cuál es la mejor manera de lograr esto?
función de su entorno, Rastrillo registrará consultas SQL al igual que cualquier proceso de rieles se & en el mismo archivo de registro. Por lo tanto, en su cuadro de desarrollo, verifique su archivo log/development.log - contendrá las consultas de su tarea Rake. Si desea consultas registradas en producción, configure el nivel de registro en su tarea de Rake para DEPURAR, y asegúrese de que la tarea de rake dependa de: environment.
desc "Task with SQL logging"
task :test_log => :environment do
Rails.logger.level = Logger::DEBUG
Your code here...
end
echo '' > log/development.log
rake db:migrate:redo VERSION=20141017153933
cat log/development.log
He intentado todo lo anterior y no podía conseguir que funcione. La sintaxis estaba bien, no hay errores, pero ningún sql llegó a stdout (o el log). Estoy usando rails 3.2. También estoy corriendo en un entorno de producción.
Para ver las consultas SQL generado por mis tareas rastrillo, he utilizado la técnica de encontrar en http://eewang.github.io/blog/2013/07/29/how-to-use-rake-tasks-to-generate-migration-sql/
En particular, me acaba de insertar este bloque en mi tarea antes de que el find() declaraciones que generaron las consultas SQL que estuve intersted en:
ActiveRecord::Base.connection.class.class_eval do
# alias the adapter's execute for later use
alias :old_execute :execute
# define our own execute
def execute(sql, name = nil)
print "===== #{sql}\n"
old_execute sql, name
end
end
Luego pude ver el SQL en stdout. Este no es mi código: a Eugene Wang se le ocurrió esta técnica.
Posible duplicado: is it possible to output the sql change scripts that rake db:migrate produces?
Hay algunas buenas opciones allí. Mi favorito, por supuesto, es mi respuesta.
ah, veo que están en development.log, gracias – mbdev