2012-04-07 76 views
1

我已經成功地將與Capistrano部署的Rails應用程序部署到運行NGinx & Passenger的服務器。在部署時,我收到了「我們很抱歉,出錯了」消息&相當困惑,因爲生產日誌是空白的。然後我切換到rails_envdevelopment NGINX我CONF &現在我越來越:Capistrano Rails應用程序SQLite3無法打開數據庫

SQLite3::CantOpenException 

unable to open database file 
Rails.root: /www/testcap/releases/20120407015032 

我登錄到服務器,到current文件夾中testcap(我相信符號鏈接到最新版本),然後跑掉rake db:create ,但是存在數據庫文件。查看應用程序的db文件夾後,我看到development.db & test.db

如果我運行rails s -e production,然後前往myurl.com:3000該應用程序運行完全正常,這很奇怪,並且它也工作正常,當我運行rails s -e development太。

我完全喪失了什麼問題可能在這裏。我敢肯定這肯定是一個相對明顯的問題,可能與卡皮斯特拉諾?我還是一個新手,所以我可以錯過任何東西,但是迄今爲止使用谷歌搜索一直沒有結果。

我能想到的唯一的事情是我沒有明確地與我的config/deploy.rb中的數據庫相關?不過,我還沒有找到網上的任何指南來幫助到目前爲止。

在此先感謝您的幫助:)

傑克。

+0

可能是文件權限問題?要測試,請嘗試chmod 777'db文件,然後查看它是否有效? – benlumley 2012-04-07 09:07:36

+0

你可以運行'cap deploy:migrate'嗎?如果文件存在,權限聽起來可能是無法打開錯誤的答案。 – 2012-04-07 09:16:20

回答

1

感謝Adam P &上面的評論,我設法在此做出了一些反應。 This Guide也解決了我的問題。

我跟着上面,在我database.yml文件引導我從改變路徑production分貝步驟:

`db/production.sqlite3` 

`/www/testcap/shared/db/production.sqlite3` 

(如絕對路徑)

然後我將此添加到我的config/deploy.rb

role :db, "{my vps IP}", :primary => true 

在我的VPS上,我進入了nginx conf &刪除了行rails_env development(乘客然後將其設置爲production默認情況下)。

然後運行cap deploy後面cap deploy:migrate,它工作,我得到的應用程序顯示,當我訪問的URL。

我希望這可以幫助別人,將來停留在同一個問題:)

傑克。