【发布时间】:2012-04-07 02:00:36
【问题描述】:
我已经设法将一个使用 Capistrano 部署的 Rails 应用程序部署到运行 NGinx 和Passenger 的服务器上。在部署时,我收到“我们很抱歉,出了点问题”消息,并且由于生产日志为空白而感到困惑。然后我在我的 NGinx Conf 中将rails_env 切换为development,现在我得到了:
SQLite3::CantOpenException
unable to open database file
Rails.root: /www/testcap/releases/20120407015032
我登录到服务器,进入testcap 中的current 文件夹(我相信它是指向最新版本的符号链接)并运行rake db:create,但是db 文件存在。查看应用程序的db 文件夹后,我看到了development.db 和test.db。
如果我运行 rails s -e production 然后前往 myurl.com:3000 应用程序完全正常,这很奇怪,当我运行 rails s -e development 时它也运行良好。
我完全不知道这里可能存在什么问题。我确定这一定是一个相对明显的问题,可能与 capistrano 相关?我还是新手,所以我很可能会错过任何东西,但到目前为止谷歌搜索一直没有结果。
我唯一能想到的是,我的 config/deploy.rb 中没有与数据库明确相关的内容?但是到目前为止,我还没有在网上找到任何可以提供帮助的指南。
提前感谢您的帮助:)
杰克。
【问题讨论】:
-
可能是文件权限问题?要测试,请尝试 chmod 777'ing .db 文件,然后查看它是否有效?
-
你能运行
cap deploy:migrate吗?如果文件存在,权限听起来可能是无法打开错误的答案。
标签: ruby-on-rails capistrano sqlite3-ruby