2012-04-07 78 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。

我希望这可以帮助别人,将来停留在同一个问题:)

杰克。