使用 capistrano 只更新 git 而不是部署整个新版本

Use capistrano to only update with git instead of deploying whole new release

我有一个非常小的应用程序,它甚至在生产中使用 sqlite3,因为多次写入永远不会有任何问题,等等。我想使用 capistrano 快速、轻松地将更新部署到这个应用程序。但是当我 运行 cap production deploy 时,它会将整个应用程序转储到发布文件夹中并将其符号链接到 current。我知道我可以在 deploy.rb 中包含 production.sqlite3 文件来保留数据,但每次我想推送更新时克隆整个 repo 似乎有点过分了。

我在 capistrano 文档中找不到任何更新。

基本上我需要做的就是

  1. 确保我的本地 git HEAD 与 master 相同

  2. SSH 进入产品服务器并执行 git pull

  3. 运行 rake db:migrate 如有必要

  4. 运行 rake assets:clean assets:precompile

  5. 重启Phusion Passenger

我将如何完成?

只需编写您自己的 bash 或 ruby 脚本即可。我认为你错过了 Capistrano 的重点。克隆整个 repo 允许您进行部署回滚,而将以前的版本保持原样。它会考虑失败的部署,并且不会在部署过程中扰乱您的生产站点。