我设法将使用Capistrano部署的Rails应用程序运行到运行NGinx&乘客。在部署时,我得到了“我们很抱歉,出了问题”的消息&由于生产日志是空白的,所以很困惑。然后我在我的NGinx会议室中将rails_env
切换为development
现在我得到了:
SQLite3::CantOpenException
unable to open database file
Rails.root: /www/testcap/releases/20120407015032
我登录到服务器,进入current
内的testcap
文件夹(我相信符号链接到最新版本)并运行rake db:create
,但db文件存在。在应用的db
文件夹中查看后,我看到了development.db
& test.db
。
如果我运行rails s -e production
然后前往myurl.com:3000该应用程序完全正常,这很奇怪,当我运行rails s -e development
时它也能正常工作。
我完全不知道这里可能出现什么问题。我敢肯定这可能是一个相对明显的问题,可能与capistrano?我还是新手,所以我很可能错过任何东西,但谷歌搜索迄今为止没有结果。
我唯一能想到的是我config/deploy.rb
中没有明确与数据库相关的内容?但是到目前为止,我还没能在网上找到任何指南。
提前感谢您的帮助:)
杰克。
答案 0 :(得分:1)
感谢Adam P&上面的Ben L,我设法在这方面取得了一些进展。 This Guide也解决了我的问题。
我按照上面指南中的步骤操作,在我的database.yml
文件中,我将路径更改为production
db:
`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
(Passenger默认将其设置为production
。
然后运行cap deploy
,然后运行cap deploy:migrate
,这有效,我在访问网址时显示应用。
我希望这可以帮助将来某人坚持同样的问题:)
杰克。