【问题标题】:Getting PG Error hard to debug when using delayed_job on heroku在heroku上使用delayed_job时很难调试PG错误
【发布时间】:2010-09-12 01:20:44
【问题描述】:

我正在尝试使用 heroku,但似乎遇到了 Postgres 错误,但没有足够的信息知道要修复什么。

错误如下,看起来是在尝试运行delayed_job:

> PGError: ERROR:  value too long for
> type character varying(255) : UPDATE
> "delayed_jobs" SET "updated_at" =
> '2010-09-12 01:06:59.354515', "last_e
> rror" = E'undefined method `subject''
> for #<YAML::Object:0x2b19faeca308>

这是我从 cron.rake 调用它的方式:

    Delayed::Job.enqueue SomeMailJob.new(contact,contact_email)

SomeMailJob 是通过这个文件定义的:

 class SomeMailJob < Struct.new(:contact, :contact_email) 
   def perform
     OutboundMailer.deliver_campaign_email(contact,contact_email)
   end
 end

“看起来”delayed_jobs 的数据库正在尝试更新一些时髦的东西,但我不知道那会是什么.....

【问题讨论】:

    标签: ruby-on-rails postgresql heroku delayed-job


    【解决方案1】:

    当延迟的作业工作进程尝试存储运行作业的结果时,会发生 postgres 错误(顺便说一句,这是一个单独的错误)。

    检查您的延迟工作表,特别是 last_error 列。它应该是 text 列,但看起来你的列是 string

    【讨论】:

    • 嗨,我该如何检查——我使用了插件内置的迁移功能,所以看起来很奇怪,它会关闭......让我检查一下迁移表是什么......
    • 是的,插件的迁移使 last_error 字符串而不是文本......我可以更改迁移 - 但也许应该让拥有插件的人知道......
    • 嗯...看起来他们是这样写的:github.com/pedro/delayed_job - 但他们按照您的建议做了更改,所以试试吧!
    【解决方案2】:

    看起来潜在的错误来自对未定义该方法的对象调用“主题”。

    【讨论】:

    • 我怎样才能弄清楚那个对象是什么,它没有给我足够的信息来弄清楚(我不知道为什么它会调用那个方法)......跨度>
    【解决方案3】:

    似乎您正在尝试在最大字符数为 255 的列中输入超过 255 个字符的值。

    干杯

    同人

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-15
      • 2017-04-16
      • 1970-01-01
      • 1970-01-01
      • 2017-06-10
      • 2010-12-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多