【发布时间】:2014-07-29 05:33:14
【问题描述】:
所以,我在主服务器部署后使用 Drush (Drupal) 运行一些命令(缓存清除、数据库更新等)。
我的 deploy.rb 中有一个这样的块;
after :restart, :clear_cache do
on roles(:web), in: :groups, limit: 3, wait: 10 do
symlink_configuration.each do |config|
shared = File.join(shared_path, config[0])
release = File.join(release_path, config[1])
execute "ln -nfs #{shared} #{release}"
end
# Drush tasks.
execute "drush -r #{File.join(release_path, 'app')} vset --exact --yes maintenance_mode 1; true"
execute "drush -r #{File.join(release_path, 'app')} cc all; true"
execute "drush -r #{File.join(release_path, 'app')} -y updb; true"
execute "drush -r #{File.join(release_path, 'app')} vset --exact --yes maintenance_mode 0; true"
end
end
问题是我只想在主服务器上执行这些任务。我在 production.rb 中标记了 primary: true,但我看不出如何将块包装在 if(is(primary)) 或类似的东西中。
在此不胜感激。
谢谢。
【问题讨论】:
标签: capistrano3 drush