前回のエントリでnamespaceに起因すると勘違いした不具合。
capistranoのmultistageでdeploy_toにstageごとに異なるパスを指定すると変になるという話。

multistageを使っている時に、config/deploy/staging.rbに以下のように書いたとする。

が、これは期待した動作をしない。deploy:symlinkの時にオーバーライドしたはずのdeploy_toが復活する。もしdeploy.rbでdeploy_toを指定していなければ、デフォルトの/u/apps/#{application}が使われる。

これを回避するには、staging.rbに以下を追加する必要がある。

これならdeploy_toが呼び出された時点で評価される。

しかし、全てのrails_envについて(staging.rb,production.rbなど)同じ内容を書かないといけないのでよろしくない。
ぱっと見だと難しそうなので、ゆっくりソースを追って考えてみます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>