Ruby on rails 轨道错误500,“;我们';“很抱歉,出了点问题。”;

Ruby on rails 轨道错误500,“;我们';“很抱歉,出了点问题。”;,ruby-on-rails,ruby,postgresql,sqlite,heroku,Ruby On Rails,Ruby,Postgresql,Sqlite,Heroku,经过三个晚上关于这个问题的讨论,阅读了所有关于这个问题的帖子,我终于不得不问这个问题了 我想将最简单的Rails应用程序部署到Heroku: rails新测试应用程序 cd测试应用 初始化 git添加。 git提交-m“初始提交” 赫罗库创造 git推送heroku主机 一切正常,应用程序在Heroku上运行良好。之后,我将创建一个SQLite3数据库: rails生成脚手架用户名:string电子邮件:string rake数据库:迁移 在本地机器上一切正常。我可以很好地看到localho

经过三个晚上关于这个问题的讨论,阅读了所有关于这个问题的帖子,我终于不得不问这个问题了

我想将最简单的Rails应用程序部署到Heroku:

rails新测试应用程序
cd测试应用
初始化
git添加。
git提交-m“初始提交”
赫罗库创造
git推送heroku主机
一切正常,应用程序在Heroku上运行良好。之后,我将创建一个SQLite3数据库:

rails生成脚手架用户名:string电子邮件:string
rake数据库:迁移
在本地机器上一切正常。我可以很好地看到
localhost:3000/用户。然后我想把DB放在Heroku上。首先,我修改我的文件:

gem 'rails'
gem 'sqlite3'
组:生产do
宝石“pg”
结束
小组:开发,:测试
gem'sqlite3'
结束
然后我把整件事都寄给了希罗库:

git init
git添加。
git提交-m“带数据库”
git推送heroku主机
heroku rake db:迁移
然后批处理中没有错误,一切正常,数据库被发送,但是页面
heroku.com/users
给出了错误

Rails 500,“很抱歉,出了点问题”


我不知道该怎么办。你能帮我吗?

不要在第二组命令中执行git init-你只需要初始化git repo一次


除此之外,这看起来还不错-您在任何地方都看到了错误吗?

为什么在生产组中使用
pg
gem,而在开发组中使用
sqlite3
gem?在我看来,您的问题很可能是因为您使用的是与生产环境中使用的不同的数据库。如果我是你,我会坚持使用一个,这将使调试更加容易

如果您真的希望/需要尽快运行应用程序,那么只需在生产环境中使用sqlite运行它。。。档案:

gem 'rails'
gem 'sqlite3'
另外,一种快速找出错误的方法是从unix控制台运行heroku日志。

哪个版本的Rails? 您可以尝试创建在Cedar堆栈上运行的应用程序吗

heroku create myapp --stack cedar
鉴于应用程序在cedar上运行,您需要稍微修改一下命令,例如:

heroku run rake db:migrate

在任何情况下,您都需要签出日志,因为您的问题甚至可能与数据库无关,而与资产相关。

我怀疑您正在尝试将Rails 3.1应用程序部署到竹堆(heroku create默认为1.9.2竹堆,不运行Rails 3.1)。Cedar stack更适合Rails 3.1站点-

试一试

在Heroku上创建应用程序并重新打包时。另外请注意,Heroku上的rake命令将变为

heroku run rake db:migrate

您是否添加了heroku共享5mb数据库实例? 当您创建heroku应用程序(在cedar上)时,它不一定会自动创建数据库

airlift:projects  $ heroku create --stack cedar testapp9
Creating testapp9... done, stack is cedar
http://testapp9.herokuapp.com/ | git@heroku.com:testapp9.git

airlift:projects  $ heroku addons --app testapp9 
logging:basic
releases:basic
当您查看heroku配置时,您将一无所获:

heroku配置

要添加数据库,请执行以下操作:

heroku插件:添加共享数据库:5mb

airlift:projects$heroku插件:添加共享数据库:5mb——应用程序testapp9
----->正在将共享数据库:5mb添加到testapp9。。。完成,v3(免费)
空运:项目$heroku配置
没有指定应用程序。
从应用程序文件夹运行此命令,或指定要与--app一起使用的应用程序
空运:项目$heroku配置--应用程序testapp9
数据库URL=>postgres://blah:blah@blah.compute-1.amazonaws.com/blah
共享\u数据库\u URL=>postgres://blah:blah@blah.compute-1.amazonaws.com/blah
空运:项目美元
然后您应该能够迁移数据库。

执行以下操作:

heroku运行rake数据库:模式:加载


我也有同样的问题。在git push heroku master之后,它对我来说很有用,Hey@redronin感谢你帮助我找到了一种连接heroku上我的postgres数据库的方法,但是作为heroku和postgresql的新手,我不得不对“废话”进行反向工程。所以,我想我会像你帮助我一样,把它分解出来帮助别人


postgres://[user]:[password]@[servername].compute-1.amazonaws.com/[database]

您是否使用终端上的heroku日志检查了日志文件?当然,它没有说什么。。。答案如下。谢谢谢洛,非常感谢你的帮助。事实上,正如John Beynon所说,由于rails版本,我只需将它推到雪松堆中。它就是这样工作的!但我真的很感谢你的帮助!谢谢你的帮助。问题是rails版本中的堆栈。使用rails 3,仅堆叠雪松!您好,Heroku不能运行sqlite3,但要在pg中转换DB。您必须在GEM文件中这样做。问题是rails版本中的堆栈。使用rails 3,仅堆叠雪松!实际上,Heroku可以运行sqlite3。我在Heroku上运行rails3应用程序,Heroku正在使用sqlite3。我们正在使用这个堆栈:bambol-ree-1.8.7。
airlift:projects  $ heroku config --app testapp9
airlift:projects  $
airlift:projects  $ heroku addons:add shared-database:5mb --app testapp9
-----> Adding shared-database:5mb to testapp9... done, v3 (free)
airlift:projects  $ heroku config
No app specified.
Run this command from an app folder or specify which app to use with --app <app name>
airlift:projects  $ heroku config --app testapp9
DATABASE_URL        => postgres://blah:blah@blah.compute-1.amazonaws.com/blah
SHARED_DATABASE_URL => postgres://blah:blah@blah.compute-1.amazonaws.com/blah
airlift:projects  $