2010-06-29 15 views
5

Ruby on Rails projemi dağıtmak için capistrano kullanıyorum. Ben bir Dreamhost VPS üzerinde ve birkaç hafta önce, capistrano veya yolcu değişikliği olmadan, dağıtım ile garip bir sorun yaşamaya başladım:Deploy: capistrano üzerindeki sembol, "geçerli" dizini önceki sürümüne işaret eder

Her zaman capistrano benim uygulamamı dağıtıyor, her şey dağıtımı dışında doğru gidiyor: "geçerli" dizini en yeni sürüme işaret etmesi gereken sembolik bağlantı (varsayılan olarak adlandırılır). Yeni sürüm, "sürümler" dizinine düzgün bir şekilde dağıtılmış olsa da, sorun "geçerli" bağlantı bağlantısının her zaman yenisi yerine önceki sürümüne ayarlanmasıdır. Bu yüzden uygulamaları dağıtabilirim, ancak her zaman dağıtımı iki kez üst üste çalıştırmak zorundayım. http://img715.imageshack.us/img715/7803/capistranoproblemb.png

herkesten önce bu deneyimli Has veya bana bunu çözmek yardımcı olabilir:

Burada capistrano günlüğünü görebilir?

Teşekkürler!

cevap

6

Bunu, en son sürüm için doğru yol olan farklı bir iç değişken adı (en son_dosya yerine release_path veya benzeri bir şey) kullanarak sembolik bağlantıyı yeniden yaratan ek bir dağıtım göreviyle çözdüm.


namespace :deploy do 
    desc "Recreate symlink" 
    task :resymlink, :roles => :app do 
    run "rm -f #{current_path} && ln -s #{release_path} #{current_path}" 
    end 
end 

after "deploy:create_symlink", "deploy:resymlink", "deploy:update_crontab" 
+4

En son Capistrano'da, 'deploy: symlink' yerine 'disploy: create_symlink'. – manafire

+2

Lütfen kabul edilen cevabı @ knocte tarafından verilene değiştirin. Yukarıdaki kludge işe yarayabilir, ama bir kod kokusu. – JellicleCat

+0

@JellicleCat: capistrano'nun hangi sürümünü kullanıyorsunuz? – knocte

6

Düşünüyorum ki, ormanın yanıtı iyi bir çözüm değil.

Ne olduğunu düşünüyorum, capistrano'nun this horrible bug deneyimini yaşıyor olmanızdır.

yöntemim işe-etrafında Hatayla şudur: deploy OLUR GÖREV ÖNCE latest_release VARIABLE OKUYUN YAPMAYIN .

+0

Bu kabul edilen cevap olmalı. Özel görevlerimi bu hataya göre ayarlamak sorunu çözdü. – brendan

+0

@brendan: hatayı hangi repistuarda ürettin? bana bağlı olan github sayısında bana soruyorlar ... – knocte

+0

Görünüşe göre 2.15.4 @ knocte – brendan

İlgili konular