Как вы добавляете некоторые шаги в задачу capistrano?
Я хочу остановить некоторые процессы перед запуском задачи deploy: migrate. Я знаю, что могу переопределить задачу deploy: migrate, скопировав существующий код и добавив шаги stop/start в начале и в конце задачи.
Мне интересно, есть ли способ избежать копирования кода из развертывания по умолчанию: выполнить миграцию в моей версии задачи. Есть ли способ ссылаться на существующую задачу deploy: migrate при определении новой одноименной задачи?
Ответы
Ответ 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