これ(http://stackoverflow.com/questions/1890709/combining-many-rake-tasks-into-one-rake-task)から、次のようなrakeタスクを組み合わせることができることがわかりました。
desc 'This rebuilds development db'
task :rebuild_dev => ["db:drop", "db:create", "db:migrate", "db:load"]
ただし、ローカルアプリでこれを実行して、それぞれがシェルコマンドのみを実行する、比較的単純なrakeタスクを組み合わせようとすると、配列の最初のタスクのみが実行されるようです ['heroku:push', 'heroku:migrate', 'heroku:restart']
。
コードは次のとおりです。
desc 'Push to heroku production, db:migrate, and restart app'
task :deploy_production => ['heroku:push', 'heroku:migrate', 'heroku:restart']
namespace :heroku do
task :push do
puts 'Deploying app to Heroku...'
exec 'git push heroku master'
end
task :migrate do
puts 'Running database migrations ...'
exec 'heroku run rake db:migrate'
end
task :restart do
puts 'Restarting app servers ...'
exec 'heroku restart'
end
end
ちなみに、必要な場合に備えて、次のバージョンのrakeを使用します。
$ gem list | grep rake
rake (0.9.2.2)