【问题标题】:Rails on Heroku -- no errors logged, works locally, but no response from webHeroku 上的 Rails - 没有记录错误,在本地工作,但没有来自网络的响应
【发布时间】:2021-02-01 23:42:05
【问题描述】:

我是 Rails 新手,我一直在尝试在 Heroku 上进行部署——我已经开始开发一个可以在本地正常运行的应用程序 (https://github.com/axfelix/ffmpegOnIce),为此我已经完成了各种必要的准备工作使其在 Heroku 上正常运行的任务(添加了一个 buildpack,添加了一个生产数据库配置以使用 postgres 而不是 SQLite,编写了一个 procfile 以确保它使用 puma),并且......它似乎什么都不做。

heroku ps 报错:

$ heroku ps -a ffmpeg-on-ice
Free dyno hours quota remaining this month: 1000h 0m (100%)
Free dyno usage for this app: 0h 0m (0%)
For more information on dyno sleeping and how to upgrade, see:
https://devcenter.heroku.com/articles/dyno-sleeping

=== web (Free): bundle exec puma -C config/puma.rb (1)
web.1: up 2021/02/01 15:28:39 -0800 (~ 5m ago)

但尝试加载 https://ffmpeg-on-ice.herokuapp.com/ 只会导致“我们很抱歉,但出了点问题。如果您是应用程序所有者,请查看日志以获取更多信息。”

我得到的一个线索是,数据库似乎没有在 Heroku 上正确初始化,就像我做 heroku run rake db:migrate -a ffmpeg-on-ice 时一样,我遇到“无法连接到服务器”的问题。但我不确定这里还需要发生什么才能让它工作,而 Heroku 日志只显示了一堆 GET。我只是没有在正确的端口上运行应用程序吗?

(这是一个新的 Ruby 3 / Rails 6 项目)

谢谢!

【问题讨论】:

    标签: ruby-on-rails heroku


    【解决方案1】:

    您似乎错过了配置文件中的 namepassword 属性:

    # database.yml
    production:
      adapter: postgresql
      database: ffmpeg_on_ice
      pool: 5
      timeout: 5000
      
      # Add the two:
      name: my_app
      password: <%= ENV['MYAPP_DATABASE_PASSWORD'] %>
    

    然后添加设置环境变量。查看Doc Getting Started on Heroku with Rails 6.x的详细信息

    添加确保在部署后运行迁移。

    【讨论】:

    • 天啊!谢谢!对于这些构建系统的哪些部分应该与隔离的、自动配置的数据库实例“正常工作”,我从来没有直观的感觉。谢谢!!
    • 很高兴为您提供帮助 :) 是的,一开始有点困惑。
    • 似乎它实际上需要username而不是名称......并且在更改后它仍然无法正常工作。
    • 啊哈!知道了! postgres heroku“插件”没有自动添加到我的实例中——可能是因为我只有条件地声明pg rails gem 用于生产?所以我必须这样做,然后我才能从 CLI 运行 migrate 并且它启动了!
    • @serilain 是的,应该是username。仅将pg 添加到生产组应该可以,我不确定哪里出错了。恭喜,它终于起作用了:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-17
    • 1970-01-01
    • 2015-10-13
    • 2023-03-13
    • 1970-01-01
    相关资源
    最近更新 更多