【发布时间】:2012-09-01 16:50:29
【问题描述】:
我从这个 (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 任务时,每个任务都只运行 shell 命令,它似乎只执行数组 ['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)
【问题讨论】:
-
啊。我自己花了一段时间才得到答案。我现在将发布答案...
标签: ruby-on-rails heroku rake