我想在運行deploy:migrate任務之前停止一些進程。我知道我可以通過複製現有代碼並在任務的開始和結束處添加停止/開始步驟來重新定義deploy:migrate任務。你如何給capistrano任務添加一些步驟?
我想知道是否有辦法避免從我的任務版本中的默認部署:遷移任務中複製代碼。有沒有辦法在定義一個同名的新任務時引用現有的deploy:migrate任務?
我想在運行deploy:migrate任務之前停止一些進程。我知道我可以通過複製現有代碼並在任務的開始和結束處添加停止/開始步驟來重新定義deploy:migrate任務。你如何給capistrano任務添加一些步驟?
我想知道是否有辦法避免從我的任務版本中的默認部署:遷移任務中複製代碼。有沒有辦法在定義一個同名的新任務時引用現有的deploy:migrate任務?
而不是重新定義deploy:migrate
,你應該爲它定義一個之前或之後的鉤子。首先,創建一個具有東西,你需要做一個新的任務:
before "deploy:migrate", :custom_name
after "deploy:migrate", :custom_name
task :custom_name do
# whatever you need to do
end
然後設置這個新的任務將通過執行下列操作之一之前或deploy:migrate
任務後運行
對於我的要求,我重寫deploy.rb中的現有任務
namespace :deploy do
# to Override deploy:migrate task
task :precompile, :roles => :app, :except => { :no_release => true } do
run "your modified commands"
end
# to override deploy:assets:precompile task
namespace :assets do
task :precompile, :roles => :app, :except => { :no_release => true } do
run "your modified commands"
end
end
end
謝謝,這正是我所需要的 – Readonly 2009-10-12 21:42:10