пятница, 26 декабря 2014 г.

Capistrano 2 (для чайников)

Собственно осознал то, что я до конца не понимал, в каком порядке работают таски в Capistrano 2.
Задался вопросом ликвидировать этот пробел в своих знаниях.

И вот что получилось.

Дефолтный таск в указанном namespace


Когда вы запускаете 

cap deploy

то это имеется в виду, что вы запукаете

cap <namespace>:<task>

Если task, не указан, то будет использоваться дефолтный таск в указанном namespace


Стандартный порядок запуска тасков


Смотрим ссылку [1].
Читаем описание по ссылке [2].

От себя добавлю немного цитат из исходного кода Capistrano:

namespace :deploy do
  task :default do
    update
    restart
  end
  task :update do
    transaction do
      update_code
      create_symlink
    end
  end

end

Про миграции в БД


В Capistrano имеется таска deploy:migrate. Она не запускается в стандартном потоке. Ее нужно запускать отдельно. 
Вывод: я привязывал запуск миграций к таске deploy:update:

after 'deploy:update', 'project:migrations'

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


Также в Capistrano имеется таска deploy:migrations для "ленивых" :) :

  task :migrations do
    set :migrate_target, :latest
    update_code
    migrate
    create_symlink
    restart
  end

Но тут надо обратить внимание на то, что нет транзакции, если сравнивать с deploy:update


Ссылки на ресурсы:

Комментариев нет:

Отправить комментарий