我試圖從另一個任務執行rake db:test:prepare
。執行db:test:從另一個rake任務準備
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
使用調用而不是執行沒有幫助。這似乎很好地工作,如果我本身定義它:
task example: :environment do
Rake::Task['db:test:prepare'].execute
end
當我運行rake db:populate:development
,所有的任務除了Rake::Task['db:test:prepare'].execute
運行。該命令的開發日誌中沒有任何活動,但它不會阻止下一個任務運行(啓動服務器)。通常,我自己運行db:test:prepare
時會看到一些SQL語句。
注:
$ 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
我有同樣的問題,這不能解決它對我來說。 – jrdioko 2013-07-24 18:30:28