首页 文章

Capistrano 3 - 如何在部署期间查询数据库

提问于
浏览
0

我们的应用程序 - 使用Capistrano 3.1部署的Rails 4.1,Passenger 4 .

处理信用卡交易时,我将其记录在我们的数据库中,然后点击Authorize.net实际收取$ . 成功后我在我们的系统中更新交易 .

我想确保Passenger在等待Authorize.net响应时不重启 . 一种选择是查询DB以查看是否有待处理的事务并等待重新启动Passenger .

如何加载Rails Env并从Capistrano任务访问模型?从rake任务来看这很容易 . 在deploy.rb中有类似的东西:

task :restart do
  on roles(:app), in: :sequence, wait: 5 do
    If Donations.pending == true
        sleep 5
    else
      execute :touch, release_path.join('tmp/restart.txt')
    end
  end
end

我也对其他建议持开放态度 . 我提前感谢你的任何建议 .

1 回答

  • 0

    我认为您的答案实际上可能存在于您的问题中:使用rake任务 . Capistrano本身不在服务器上运行,并且可能无法访问正在运行的系统使用的数据库 . 但是,在app服务器上运行的rake任务应该可以访问完整的应用程序堆栈,使您能够使用应用程序的真实模型 .

    看看How do I run a rake task from Capistrano?

相关问题