Heroku内部服务器错误-ruby/Sinatra/Postgresql

Heroku内部服务器错误-ruby/Sinatra/Postgresql,ruby,postgresql,heroku,sinatra,internal-server-error,Ruby,Postgresql,Heroku,Sinatra,Internal Server Error,我完成了学习ruby、Sinatra和Postgresql的教程。我的测试通过了,应用程序正在我的机器上本地运行,rackup和localhost:9292。我正在尝试在Heroku上导出应用程序,当我转到“内部服务器错误”时,我收到以下消息 这似乎是Heroku的一个常见错误消息,但我无法联系到在StackOverflow上发现的任何面临此错误的类似主题。我觉得这可能是一个数据库问题,但根据Brian的建议(见下文),我创建了数据库。请在下面找到完整的Heroku日志: 这里是链接到 如果需

我完成了学习ruby、Sinatra和Postgresql的教程。我的测试通过了,应用程序正在我的机器上本地运行,rackup和localhost:9292。我正在尝试在Heroku上导出应用程序,当我转到“内部服务器错误”时,我收到以下消息

这似乎是Heroku的一个常见错误消息,但我无法联系到在StackOverflow上发现的任何面临此错误的类似主题。我觉得这可能是一个数据库问题,但根据Brian的建议(见下文),我创建了数据库。请在下面找到完整的Heroku日志:

这里是链接到


如果需要任何其他信息,请让我知道;它还将提高我的调试技能,让我知道如何在将来解决Heroku错误。

之所以会发生这种情况,是因为您的应用程序似乎被配置为连接到与应用程序(localhost)位于同一服务器上的数据库。Heroku不是这样工作的

您需要:

  • 附加数据库:
    heroku插件:创建heroku postgresql:hobby dev
  • 将应用程序设置为连接到Heroku DB
  • 以下是您的做法#2:

    创建数据库后,heroku会将连接字符串添加到您的实例环境变量中,并可通过以下方式访问:ENV['DATABASE_URL']

    DataObjects::Connection.new(ENV['DATABASE_URL'])
    
    如果遇到数据库URL问题,可以检查Heroku分配给新数据库连接字符串的URL:

    heroku config -s | grep HEROKU_POSTGRESQL
    

    参考资料:

    尝试在应用程序中设置数据库,然后将开发数据库推送到应用程序中。这是由:heroku addons:createheroku postgresql:hobby dev完成的。创建数据库后,使用“pg:promote DATABASE_URL”命令对其进行升级。然后,您可以将您的开发数据库“pg:push”到新创建的数据库中。让我知道这是否有帮助。在任何人能够帮助你之前,你需要包括沼泽信息。首先,应该有更多的日志,可能有一个回溯,将显示错误是什么。布赖恩,谢谢你。这是非常有用的;我已经创建了一个Heroku数据库,并从本地机器上推送。“heroku pg:info”确认它已经创建,并且存在表。我希望这对数据库来说是好的。错误仍然存在。Matt,谢谢你的反馈。我已经更新了日志。如果还需要什么,请让我知道。再次感谢。你能发布你用来连接数据库的代码吗?(例如,
    set:database…
    Hi Isaiah,谢谢你的留言。我不确定是否理解你的问题。我用postgreSQL创建了数据库,当我需要连接时,我在存储库中使用psql和\c(上面的链接),我还创建了一个app/data\u mapper\u setup.rb文件来设置数据库。这就是回答问题的信息吗?请告诉我。谢谢Hanks Sean。我已经有了数据库,但你是对的。我只是没有将我的应用程序链接到数据库。就这么简单!:)再次感谢你的帮助。
    heroku config -s | grep HEROKU_POSTGRESQL