deploy:migrateタスクを実行する前に、いくつかのプロセスを停止したいと思います。既存のコードをコピーし、タスクの最初と最後に停止/開始ステップを追加することで、deploy:migrateタスクを再定義できることを知っています。
私のバージョンのタスクで、デフォルトのdeploy:migrateタスクからコードをコピーしないようにする方法があるかどうか疑問に思っています。同じ名前の新しいタスクを定義するときに、既存のdeploy:migrateタスクを参照する方法はありますか?
deploy:migrateタスクを実行する前に、いくつかのプロセスを停止したいと思います。既存のコードをコピーし、タスクの最初と最後に停止/開始ステップを追加することで、deploy:migrateタスクを再定義できることを知っています。
私のバージョンのタスクで、デフォルトのdeploy:migrateタスクからコードをコピーしないようにする方法があるかどうか疑問に思っています。同じ名前の新しいタスクを定義するときに、既存のdeploy:migrateタスクを参照する方法はありますか?
を再定義するのではなく、deploy:migrate
その前または後のフックを定義する必要があります。まず、必要なことを実行する新しいタスクを作成します。
task :custom_name do
# whatever you need to do
end
deploy:migrate
次に、次のいずれかを実行して、この新しいタスクをタスクの前または後に実行するように設定します。
before "deploy:migrate", :custom_name
after "deploy:migrate", :custom_name
要件については、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