Estoy intentando ejecutar rake db:test:prepare
desde otra tarea.Ejecución de db: prueba: preparación de otra tarea de rastreo
namespace :db do
namespace :populate do
desc "Seed development database"
task development: :environment do
puts "Kill local server"
%x{ ps xauwww | grep -i --regex="[t]hin" | awk '{print $2}' | xargs kill }
puts "Resetting development database"
Rake::Task['db:reset'].execute
puts "Migrating development database"
Rake::Task['db:migrate'].execute
puts "Populating development database"
Rake::Task['db:populate'].execute
puts "Pepare test database"
Rake::Task['db:test:prepare'].execute
puts "Start local server"
system 'thin -d start'
end
…
end
Usar invocación en lugar de execute no ayuda. Parece que funciona bien si lo defino por sí mismo:
task example: :environment do
Rake::Task['db:test:prepare'].execute
end
Cuando corro rake db:populate:development
, todas las tareas se ejecutan a excepción de Rake::Task['db:test:prepare'].execute
. No hay actividad en el registro de desarrollo para ese comando, pero no impide que la siguiente tarea se ejecute (iniciando el servidor). Por lo general, veo algunas declaraciones SQL cuando ejecuto db:test:prepare
por sí mismo.
Notas:
$ rails -v
Rails 3.2.2
$ ruby -v
ruby 1.9.3p125 (2012-02-16 revision 34643) [x86_64-darwin11.3.0]
$ uname -a
Darwin hook 11.3.0 Darwin Kernel Version 11.3.0: Thu Jan 12 18:47:41 PST 2012; root:xnu-1699.24.23~1/RELEASE_X86_64 x86_64
Tengo el mismo problema, y esto no lo resuelve por mí. – jrdioko