Подтвердить что ты не робот

Как вы добавляете некоторые шаги в задачу capistrano?

Я хочу остановить некоторые процессы перед запуском задачи deploy: migrate. Я знаю, что могу переопределить задачу deploy: migrate, скопировав существующий код и добавив шаги stop/start в начале и в конце задачи.

Мне интересно, есть ли способ избежать копирования кода из развертывания по умолчанию: выполнить миграцию в моей версии задачи. Есть ли способ ссылаться на существующую задачу deploy: migrate при определении новой одноименной задачи?

4b9b3361

Ответ 1

Вместо того, чтобы переопределять deploy:migrate, вы должны определить перед ним или после него. Во-первых, создайте новую задачу, которая сделает все, что вам нужно сделать:

task :custom_name do
  # whatever you need to do
end

И затем установите эту новую задачу для запуска до или после задачи deploy:migrate, выполнив одно из следующих действий:

before "deploy:migrate", :custom_name
after "deploy:migrate", :custom_name

Ответ 2

Для моих требований я переопределяю существующую задачу в 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