2010-09-12 35 views
1

我正在嘗試使用heroku,並且似乎得到Postgres錯誤,但沒有足夠的信息來知道要修復的內容。在heroku上使用delayed_job時很難調試PG錯誤

的誤差小於,它看起來像它試圖運行的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正試圖更新與一些時髦,但我不知道這可能是什麼.....

回答

3

當延遲作業工作進程嘗試存儲運行作業的結果(這是一個單獨的錯誤,順便說一句)時發生postgres錯誤。

檢查您的delayed_jobs表,特別是last_error列。它應該是text列,但看起來像你的是string

+0

嗨,我如何檢查它 - 我使用內置的遷移該插件,看起來很奇怪,它會關閉....讓我檢查一下什麼是遷移表... – Angela 2010-09-14 01:24:11

+0

是的插件遷移使拉斯t_error字符串,而不是文本....我可以改變遷移 - 但也許應該讓擁有這個插件的人知道...... – Angela 2010-09-14 01:26:07

+0

嗯......看起來像他們這樣寫的:http://github.com/pedro/delayed_job - 但他們會按照你的建議做一個註釋來完成這個改變,所以會放棄! – Angela 2010-09-14 01:26:54

0

看起來像基本錯誤是從沒有定義該方法的對象調用「主題」。

+0

一個專欄中,我怎麼能弄清楚什麼該對象是,它並沒有給我足夠的信息,以弄清楚(我不知道爲什麼它會調用該方法).... – Angela 2010-09-14 01:24:51

0

好像你試圖輸入一個值,其中有超過255個字符中具有最大字符255

歡呼

sameera

相關問題