我試圖部署我的導軌應用程序與capistrano,但我在運行我的遷移時遇到了一些麻煩。在我的開發環境中,我只使用sqlite作爲數據庫,但在我的生產服務器上使用MySQL。在與capistrano部署時在服務器上運行遷移
問題是我希望遷移從我的服務器而不是我的本地機器運行,因爲我無法從遠程位置連接到我的數據庫。
我的服務器設置: 運行ngnix,passenger,mysql和git存儲庫的debian box。
這樣做最簡單的方法是什麼?
更新:
這裏是我的部署腳本:(我代替我的實際域名與example.com)
set :application, "example.com" set :domain, "example.com" set :scm, :git set :repository, "[email protected]:project.git" set :use_sudo, false set :deploy_to, "/var/www/example.com" role :web, domain role :app, domain role :db, "localhost", :primary => true after "deploy", "deploy:migrate"
當我運行帽部署,一切工作正常,直到它試圖運行遷移。 這裏是我得到的錯誤:
** [deploy:update_code] exception while rolling back: Capistrano::ConnectionError, connection failed for: localhost (Errno::ECONNREFUSED: Connection refused - connect(2)) connection failed for: localhost (Errno::ECONNREFUSED: Connection refused - connect(2)))
這就是爲什麼我需要運行從服務器遷移,而不是從我的本地機器。
任何想法?
好吧,部署用戶名與我的本地用戶名相同。另外,當我登錄並通過ssh運行遷移時,它工作正常。 – Pandafox 2010-06-17 21:03:46
嗯。其實你發佈的錯誤是在update_code上。我可以只檢查一下,你的應用程序實際上是否被稱爲example.com,你做了cap部署:setup和cap deploy:從你的本地機器檢查? example.com只是你在這裏隱私的一部分,我接受了嗎? – mark 2010-06-17 21:07:41
嘿,是的,我用我的example.com替換了我的真實域名以獲得隱私。代碼部署到我的服務器就好了,只是capistrano試圖在我的本地機器上運行遷移,而不是在服務器上:) – Pandafox 2010-06-17 21:14:26