使用 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 文档中找不到任何更新。
基本上我需要做的就是
确保我的本地 git HEAD 与 master 相同
SSH 进入产品服务器并执行 git pull
运行 rake db:migrate
如有必要
运行 rake assets:clean assets:precompile
重启Phusion Passenger
我将如何完成?
只需编写您自己的 bash 或 ruby 脚本即可。我认为你错过了 Capistrano 的重点。克隆整个 repo 允许您进行部署回滚,而将以前的版本保持原样。它会考虑失败的部署,并且不会在部署过程中扰乱您的生产站点。
我有一个非常小的应用程序,它甚至在生产中使用 sqlite3,因为多次写入永远不会有任何问题,等等。我想使用 capistrano 快速、轻松地将更新部署到这个应用程序。但是当我 运行 cap production deploy
时,它会将整个应用程序转储到发布文件夹中并将其符号链接到 current
。我知道我可以在 deploy.rb
中包含 production.sqlite3
文件来保留数据,但每次我想推送更新时克隆整个 repo 似乎有点过分了。
我在 capistrano 文档中找不到任何更新。
基本上我需要做的就是
确保我的本地 git HEAD 与 master 相同
SSH 进入产品服务器并执行
git pull
运行
rake db:migrate
如有必要运行
rake assets:clean assets:precompile
重启
Phusion Passenger
我将如何完成?
只需编写您自己的 bash 或 ruby 脚本即可。我认为你错过了 Capistrano 的重点。克隆整个 repo 允许您进行部署回滚,而将以前的版本保持原样。它会考虑失败的部署,并且不会在部署过程中扰乱您的生产站点。