2011-07-04 37 views
3

我正在使用Capistrano部署rails應用程序;如何在服務器上更新一個文件而無需發佈新版本?將單個文件git部署到服務器

例如:

假設我修改了只有我UserController.rb.,並致力於它與git服務器, 我應該怎麼得到這個更新到服務器而不進行新的部署。

+1

當然,擁有部署系統的關鍵在於您實際使用它,而不是試圖規避它? –

+0

@Andrew:感謝您的評論,但仍然不清楚,簡而言之,我們應該只進行一次文件更新的整個部署過程。 – Neel

回答

2

您應該通過Capistrano發佈新版本。

部署工具的目的是爲您提供可重複的結果並幫助您跟蹤部署的內容。繞過這個小修補程序意味着你失去了這兩個優點。如果您認爲運行整個部署過程進行簡單的更改會導致過大的損失,那麼您可能應該簡化流程(或者確保您不必執行簡單的修復 - 祝您好運!)。

務實地,我相信很多人只會在服務器上手動編輯文件。不推薦,因爲上面給出的原因。如果你認爲權衡是值得的,那就是你的呼喚:)。

作爲免責聲明:我不是Ruby開發人員,我從來沒有真正使用Capistrano,我的建議是通用的,而不是特定於這些技術。也許有一種特殊的方式來通過系統推動小的變化 - 如果是這樣,我本來期待一個答案指出...

+0

那麼我明白這個部署對於追蹤發行版很有用。但是我仍然想知道如果不使用任何ftp客戶端,我可以只對文件進行更改。請幫助我,如果您有任何想法... 由非常感謝你的答覆。 – Neel

+0

如果您試圖將s/th推送到測試或登臺服務器,那麼您可能不太關心回滾或跟蹤發佈。那就是你沒有碰到任務關鍵服務器,你可能只想修正一個錯字或其他真正快速的事情,而不必等待一個巨大的部署。取決於您的應用可能需要相當長一段時間。 但總的來說,我同意它應該非常明智地使用,很少,如果根本不在生產箱上。 –

11

Capistrano有一個部署任務,用於更新單個文件,必要的。

cap -e deploy:upload 

在你的情況很可能是這樣的:

cap deploy:upload FILES='app/controllers/UserController.rb' 

您可能還需要重新啓動應用程序

cap deploy:restart 
+0

與此處相同:http://www.frick-web.com/zh-CN/blogposts/capistrano-single-file-deployment-完美的作品! – Mattherick