別のタスクからrake db:test:prepare
を実行しようとしています。db:test:別のレーキタスクからの準備
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
executeの代わりにinvokeを使用すると役立ちません。私が自分自身でそれを定義した場合正常に動作するようです:
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