12

deploy:migrateタスクを実行する前に、いくつかのプロセスを停止したいと思います。既存のコードをコピーし、タスクの最初と最後に停止/開始ステップを追加することで、deploy:migrateタスクを再定義できることを知っています。

私のバージョンのタスクで、デフォルトのdeploy:migrateタスクからコードをコピーしないようにする方法があるかどうか疑問に思っています。同じ名前の新しいタスクを定義するときに、既存のdeploy:migrateタスクを参照する方法はありますか?

4

2 に答える 2

21

を再定義するのではなく、deploy:migrateその前または後のフックを定義する必要があります。まず、必要なことを実行する新しいタスクを作成します。

task :custom_name do
  # whatever you need to do
end

deploy:migrate次に、次のいずれかを実行して、この新しいタスクをタスクの前または後に実行するように設定します。

before "deploy:migrate", :custom_name
after "deploy:migrate", :custom_name
于 2009-10-12T19:57:57.907 に答える
0

要件については、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
于 2013-03-13T08:13:23.143 に答える