【问题标题】:Trouble deploying to Heroku -- logs included部署到 Heroku 时遇到问题——包括日志
【发布时间】:2012-05-19 11:51:01
【问题描述】:

我正在 Heroku 上的 Bamboo 堆栈上运行 Rails 3.09 Ruby 1.92 应用程序。该应用程序在本地运行的生产模式下运行良好,没有问题。我正在尝试诊断为什么该应用程序无法在 Heroku 上运行。我收到 500 错误其他服务器错误。有没有人见过类似日志中的内容?

这是我的日志...

https://gist.github.com/2655795

更新:这是更新的日志:https://gist.github.com/2655991

更新:我在 production.rb 文件中启用了 config.whiny_nils = true,现在我在 Heroku 上收到此错误,但在生产环境中没有在本地运行。我在本地使用 Postgres。

G::Error: ERROR: null value in column "id" violates not-null constraint : INSERT INTO "sessions"

【问题讨论】:

  • 只需要检查一下,但是您确实 migrate您的数据库,对吧?
  • 您是否预编译了您的资产?我注意到第一个错误似乎出现在未找到的图像上。
  • rjz:我运行了我的迁移。 Dave Collins:我正在运行 rails 3.09。当我在未知任务中bundle exec rake:assets precompile 时出现错误。我认为 Asset Pipeline 是 Rails 3.1+。
  • 我要上传 gemfile.lock。认为它可能是带有宝石的东西?

标签: ruby-on-rails postgresql heroku


【解决方案1】:

我打赌你是从 MySQL 迁移过来的。

您的表没有sequence,pg 使用的不是autoincrement。不要使用"id" integer NOT NULL, 创建表的id 列,而是使用"id" serial,。 Postgres 会提到它正在为你创建一个序列,你可以在命令行中运行\d tablename 来查看它。

【讨论】:

    【解决方案2】:

    登录 Heroku 并运行以下命令:

    rake db:sessions:clear
    

    看起来您可能有旧的会话数据。

    如果您之前没有这样做过,您可以通过运行以下命令登录到您的 Heroku 实例:

    heroku run bash --app my_app
    

    【讨论】:

    • 嗨,凯文,我试过了,但它仍然无法正常工作。 PG::Error: ERROR: null value in column "id" violates not-null constraint : INSERT INTO "sessions" ("session_id", "data", "created_at", "updated_at") VALUES ('34322a201a85fc70a26209891528b989', 'BAh7B0kiFWN1cnJlbnRfY2F0ZWdvcnkGOgZFRkkiKTExM2EyM2NiLTFiZTEt NGZjOS05NWIyLTNiNTllMDc3NWZiOQY7AFRJIhBfY3NyZl90b2tlbgY7AEZJ IjF2bEd3anJqK1djSG9TNlgwd3NjQUgxWjhpcURGMkxkaEhPMXVKSC90Tkpr PQY7AEY= ', '2012-05-14 23:48:02.184057', '2012-05-14 23:48:02.184057')
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-31
    • 2015-12-03
    • 2019-02-18
    • 1970-01-01
    • 2021-01-20
    • 2016-08-27
    相关资源
    最近更新 更多