1

我已经设法将使用 Capistrano 部署的 Rails 应用程序部署到运行 NGinx 和Passenger 的服务器上。在部署时,我收到“我们很抱歉,出了点问题”的消息,并且由于生产日志为空白而感到相当困惑。然后我在我的 NGinx Conf 中切换rails_envdevelopment,现在我得到:

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? 但是,到目前为止,我还没有在网上找到任何指南来提供帮助。

在此先感谢您的帮助 :)

杰克。

4

1 回答 1

1

感谢上面 Adam P 和 Ben L 的评论,我设法在这方面取得了一些进展。本指南也解决了我的问题。

我按照上面该指南中的步骤进行操作,并在我的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(Passenger 然后将其production默认设置为)。

然后运行cap deploycap deploy:migrate它起作用了,当我访问 URL 时,我得到了显示的应用程序。

我希望这可能会帮助将来遇到同样问题的人:)

杰克。

于 2012-04-07T12:40:59.743 回答