我正试图在这里部署我的第一个Rails应用程序,从昨晚开始我就一直在做一些事情。我遇到了一些我无法解释的怪异行为。
我正在运行Rails、Apache、Phusion Passenger,目前还有SQLite 3。(我很快会把它转移到MySQL。)目前,它托管在一个运行Ubuntu Server 11.04(Natty)的太小的EC2切片上。
当我在浏览器中访问EC2切片的地址时,我会收到默认的Rails500通知。但奇怪的是。当我跟踪<code>/log/production.log</code>时,我看到以下错误:
ActionView::Template::Error (SQLite3::SQLException: no such table: offers: SELECT "offers".* FROM "offers" WHERE (code = ) ORDER BY created_at desc LIMIT 25 OFFSET 0):
因此,我在SQLite3中手动打开了开发数据库,并在其中看到了该表。但是,生产数据库没有该表。
好的,所以我在生产日志中记录了生产数据库的错误。应用程序必须在生产模式下运行,对吧?
这就是困扰我的地方。首先,它在我的开发机器上以开发模式运行,当我部署它时,我没有更改任何文件。我也没有使用任何花哨的部署工具来部署它(可能在我不知情的情况下切换了一些东西)-我只做了一个简单的<code>git push
此外,我在httdp.conf VirtualHost配置中添加了以下内容:
RailsEnv development
此外,当我运行rails控制台时,我可以得到以下内容:
irb(main):002:0> Rails.env
=> "development"
所以,应用程序真的应该在开发模式下运行,对吧?事实上,它似乎(部分)认为是这样,对吧?
我真的不确定这里发生了什么,我真的很感激一些专家的建议。
谢谢大家。
编辑-几次服务器重新启动后,当我试图在浏览器中查看它时,它就挂起了。此外,当我试图重新启动Apache(因此服务器重新启动)时,它似乎挂起了,是相关的问题,还是完全不同的问题?