我正在使用Capistrano来部署rails应用程序;如何在不发布新版本的情况下在服务器上更新一个文件?
例如:
假设我只对我的UserController.rb.
进行了更改并将其提交到git服务器,
如何在不进行新部署的情况下将此更新发送到服务器上。
答案 0 :(得分:11)
Capistrano有一个部署任务,用于更新不需要完全部署的单个文件。
cap -e deploy:upload
在你的情况下,它可能是这样的:
cap deploy:upload FILES='app/controllers/UserController.rb'
您可能还需要重新启动应用
cap deploy:restart
答案 1 :(得分:2)
你应该通过Capistrano发布新版本。
部署工具的目的是为您提供可重复的结果,并帮助您跟踪已部署的内容。绕过这个小过程的过程意味着你失去了这两个优点。如果您认为运行整个部署过程进行简单的更改是过度的,那么您应该努力简化流程(或确保您永远不必执行简单的修复 - 祝您好运!)。
实际上,我确信很多人只会在服务器上手动编辑文件。由于上述原因,不推荐使用。如果你认为权衡是值得的,那就是你的电话:)。作为免责声明:我不是红宝石开发者,我从未真正使用过Capistrano,我的建议是通用的,而不是特定于这些技术。也许有一种特殊的方法来推动系统中的小变化 - 如果是这样的话,我已经预料到会有一个答案指出来......
答案 2 :(得分:0)
Capistrano 3中不再存在任务import
您可以添加此gem https://github.com/Reiknistofa/capistrano-upload以将其恢复。