2010-09-12 18 views
1

J'essaie d'utiliser heroku et semble avoir une erreur Postgres mais je n'ai pas assez d'informations pour savoir quoi corriger.Obtenir PG Erreur difficile à déboguer lors de l'utilisation de delayed_job sur heroku

L'erreur est ci-dessous, et on dirait qu'il essaie de courir 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> 

Voici comment je l'invoquons d'un cron.rake:

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

SomeMailJob est défini par ce fichier:

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

Il "ressemble" à la base de données pour delayed_jobs essaie d'être mis à jour avec quelque chose de génial mais je n'ai aucune idée de ce que cela pourrait être .....

Répondre

3

L'erreur postgres se produit lorsque le processus de travail de travail retardé tente de stocker le résultat de l'exécution du travail (qui était une erreur distincte, btw).

Vérifiez votre table delayed_jobs, en particulier la colonne last_error. Il devrait s'agir d'une colonne text mais il semble que la vôtre soit string.

+0

Salut, comment puis-je vérifier - j'ai utilisé la migration intégrée dans le plugin de sorte que cela semble étrange qu'il soit éteint .... laissez-moi vérifier ce que la table de migration était .... – Angela

+0

oui la migration pour le plugin fait las t_error string au lieu du texte .... Je peux changer la migration - mais peut-être que les gars qui possèdent le plugin le savent ... – Angela

+0

Hmm ... on dirait qu'ils l'ont écrit ainsi: http://github.com/pedro/delayed_job - mais ils ont mis une note pour faire le changement comme vous l'avez suggéré, alors allez-y essayer! – Angela

0

On dirait que l'erreur sous-jacente est d'appeler "sujet" sur un objet qui n'a pas cette méthode définie.

+0

Comment puis-je savoir ce que cet objet est, il ne me donne pas assez d'informations pour comprendre cela (je ne sais pas pourquoi il appellerait cette méthode) .... – Angela

0

On dirait que vous essayez d'entrer une valeur, qui a plus de 255 caractères dans une colonne qui a les caractères max 255.

cheers

Sameera