有以下' deploy.rb'代码:
namespace :deploy do
desc 'Restart application'
task :restart do
on roles(:app), in: :sequence, wait: 5 do
# Your restart mechanism here, for example:
execute :touch, release_path.join('tmp/restart.txt')
end
end
after :publishing, :restart
end
此代码部署我的应用程序,然后重新启动我的服务器,但部署后有一些待处理的迁移。上传代码后,我可以自动添加任务来执行迁移吗?提前致谢。
答案 0 :(得分:2)
Capistrano 2
如果您想在每次部署时运行迁移,请添加 deploy.rb :
after "deploy:update_code", "deploy:migrate"
或,而不是修改 deploy.rb ,您可以致电cap deploy:migrations
,这将在部署后运行所有待处理的迁移
Capistrano 3
我认为你已经安装了capistano-rails gem。
如果您想自动运行迁移,则可以在 Capfile
中进行迁移require 'capistrano/rails/migrations'
或只需运行cap deploy:migrate
来源:https://github.com/capistrano/rails#capistranorails和http://www.talkingquickly.co.uk/2014/01/deploying-rails-apps-to-a-vps-with-capistrano-v3/
希望这有帮助