Capistrano Rails app SQLite3无法打开数据库

时间:2012-04-07 02:00:37

标签: ruby-on-rails capistrano sqlite3-ruby

我设法将使用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中没有明确与数据库相关的内容?但是到目前为止,我还没能在网上找到任何指南。

提前感谢您的帮助:)

杰克。

1 个答案:

答案 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,这有效,我在访问网址时显示应用。

我希望这可以帮助将来某人坚持同样的问题:)

杰克。