Heroku - 应用程序错误

时间:2011-10-31 12:49:42

标签: ruby-on-rails heroku

我用Ruby on Rails创建了简单的应用程序,我试图在Heroku上提交它。我跟着这个Getting Started on Heroku guide, 我完成了它并尝试打开我的页面,但我仍然看到一个错误: 应用程序错误:

  

应用程序中发生错误,您的页面无法执行   提供服务。请稍后再试。

     

如果您是应用程序所有者,请查看日志以获取详细信息。

有人知道如何处理吗?


我不知道发生了什么但是我已经完成了这一步,不幸的是我还有另一个问题,我运行了一些命令:

  

git add。
   # git commit -m“我的提交”
  在分支主人没有提交(工作目录清洁)
   # git push heroku   大师一切都是最新的    # heroku打开打开   http://eerie-meadow-9207.heroku.com/
   # heroku重启   重启过程......完成了    # heroku打开打开   http://eerie-meadow-9207.heroku.com/

我看到了一条消息:

  

我们很抱歉,但出了点问题。

     

我们已收到有关此问题的通知,我们很快就会对其进行审核。

heroku logs [为了清晰起见而删除的时间戳]

app[web.1]: Started GET "/" for 77.236.11.34 at 2011-10-31 11:50:38 -0700
app[web.1]:   Processing by StoreController#index as HTML
app[web.1]: Completed 500 Internal Server Error in 3ms
heroku[router]: GET eerie-meadow-9207.heroku.com/ dyno=web.1 queue=0 wait=0ms service=13ms status=500 bytes=728
heroku[nginx]: 77.236.11.34 - - [31/Oct/2011:11:50:38 -0700] "GET / HTTP/1.1" 500 728 "-" "Mozilla/5.0 (X11; U; Linux i686; pl-PL; rv:1.9.2.23) Gecko/20110921 Ubuntu/10.04 (lucid) Firefox/3.6.23" eerie-meadow-9207.heroku.com
app[web.1]:
heroku[web.1]: State changed from up to bouncing
heroku[web.1]: State changed from bouncing to created
heroku[web.1]: State changed from created to starting
heroku[web.1]: Starting process with command `thin -p 40376 -e production -R /home/heroku_rack/heroku.ru start`
heroku[web.1]: Process exited
app[web.1]: >> Maximum connections set to 1024 
app[web.1]: >> Listening on 0.0.0.0:40376, CTRL+C to stop
app[web.1]: >> Thin web server (v1.2.6 codename Crazy Delicious)
heroku[web.1]: State changed from starting to up
app[web.1]:
app[web.1]: Started GET "/" for 77.236.11.34 at 2011-10-31 11:50:59-0700
app[web.1]:
app[web.1]:   Processing by StoreController#index as HTML
app[web.1]: Completed 500 Internal Server Error in 4ms
app[web.1]:
app[web.1]: ActiveRecord::StatementInvalid (PGError: ERROR:  relation "products" does not exist
app[web.1]: :             SELECT a.attname, format_type(a.atttypid, a.atttypmod), d.adsrc, a.attnotnull
app[web.1]:               FROM pg_attribute a LEFT JOIN pg_attrdef d
app[web.1]:         ON a.attrelid = d.adrelid AND a.attnum = d.adnum
app[web.1]:              WHERE a.attrelid = '"products"'::regclass
app[web.1]:           AND a.attnum > 0 AND NOT a.attisdropped
app[web.1]:              ORDER BY a.attnum
app[web.1]: ):
app[web.1]:   app/controllers/store_controller.rb:3:in `index'
app[web.1]:
app[web.1]:
app[web.1]: cache: [GET /] miss
heroku[router]: GET eerie-meadow-9207.heroku.com/ dyno=web.1 queue=0 wait=0ms service=81ms status=500 bytes=728
heroku[nginx]: 77.236.11.34 - - [31/Oct/2011:11:50:59 -0700] "GET / HTTP/1.1" 500 728 "-" "Mozilla/5.0 (X11; U; Linux i686; pl-PL; rv:1.9.2.23) Gecko/20110921 Ubuntu/10.04 (lucid) Firefox/3.6.23" eerie-meadow-9207.heroku.com
app[web.1]:
app[web.1]:
app[web.1]: Started GET "/" for 77.236.11.34 at 2011-10-31 11:54:00-0700
app[web.1]:   Processing by StoreController#index as HTML

我无法理解,因为在我的上网本上它适用于localhost,有什么想法吗?

6 个答案:

答案 0 :(得分:19)

尝试使用命令

heroku run rake db:migrate

答案 1 :(得分:14)

尝试使用heroku restart重新启动您的应用。假设您的应用在本地运行正常,这应该可以解决问题。它为我解决了这个问题,因为我只重构了模式,db:reset似乎没有做到这一点。

答案 2 :(得分:5)

大多数时候heroku问题是由于缺乏访问文件系统的权限。为了使您的应用程序能够在heroku上运行,您必须确保它不会尝试将任何内容写入磁盘(但在临时文件夹中)。

典型的例子是js / css编译过程,例如使用指南针,您可以在其知识数据库中找到解决方案:http://devcenter.heroku.com/articles/using-compass

您应该在heroku日志中进一步查看应用程序启动时或第一次请求期间是否存在“权限被拒绝”问题。

答案 3 :(得分:2)

http://www.youtube.com/watch?v=p_3dIPgXgkg

如果您已经构建了应用程序,请在开始将示例应用程序推送到heroku时转到视频中的某个点。不幸的是,当第一次上传3.1应用时,heroku很难解决错误。按照视频中的问题排查步骤进行操作即可。

答案 4 :(得分:0)

我有同样的问题。查看您的Procfile,并检查是否在其中添加了正确的命令,例如web: python run.py。我无法连接,然后放置命令heroku logs --tail来查看问题所在,然后发现在Procfile中我遇到了类型错误,例如>>> web: oython run.py <<<应用程式无法运作。因此,请注意它。命令:$ echo web: python run.py > Procfile

答案 5 :(得分:0)

只需确保在数据库中,您已允许“任何 IP 地址”连接。这称为将 IP 地址列入白名单。示例:0.0.0/0。这是因为 Heroku 每次启动时都使用不同的 IP 地址。但是您可以稍后使用 Heroku 文档和您的数据库服务提供商的文档进行更改。

https://i.stack.imgur.com/Ud2VJ.png

您可以使用此图片作为示例,它是 MongoDB Atlas 的屏幕截图