Capistrano でステージング環境と本番環境のRolesを切り替える
いろいろ悩んだ結果、この形に落ち着いた。
if ENV['DEPLOY'] == 'publish' role :app, "pub-app" role :web, "pub-web" role :db, "pub-db", :primary => true else role :app, "st-app" role :web, "st-web" role :db, "st-db", :primary => true end
ステージング環境へのデプロイメントは通常通り
% cap deploy
本番環境へのデプロイメントは環境変数の設定から
% export DEPLOY="publish"; cap deploy; unset DEPLOY
もっといいやり方は無いのかな……。