在Capistrano中发布应用程序后执行迁移的任务

时间:2014-05-30 06:47:03

标签: ruby-on-rails capistrano

有以下' 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

此代码部署我的应用程序,然后重新启动我的服务器,但部署后有一些待处理的迁移。上传代码后,我可以自动添加任务来执行迁移吗?提前致谢。

1 个答案:

答案 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#capistranorailshttp://www.talkingquickly.co.uk/2014/01/deploying-rails-apps-to-a-vps-with-capistrano-v3/

希望这有帮助