PGError: 错误:关系“delayed_jobs”不存在(Postgresql,rails 3.04,delayed_job错误)

4

我运行了rake db:createrake db:migrate,然后遇到了这个错误。

rake aborted!
PGError: ERROR:  relation "delayed_jobs" does not exist
LINE 4:              WHERE a.attrelid = '"delayed_jobs"'::regclass
                                        ^
:             SELECT a.attname, format_type(a.atttypid, a.atttypmod), d.adsrc, a.attnotnull
              FROM pg_attribute a LEFT JOIN pg_attrdef d
                ON a.attrelid = d.adrelid AND a.attnum = d.adnum
             WHERE a.attrelid = '"delayed_jobs"'::regclass
               AND a.attnum > 0 AND NOT a.attisdropped
             ORDER BY a.attnum
2个回答

9
你的查询将"delayed_jobs"转换为regclass,这将表名转换为PostgreSQL内部ID号。如果无法进行转换,则会出现以下错误: SELECT 'foo':: regclass; 错误:关系"foo"不存在
很可能你的迁移脚本应该捕捉到此错误并创建表格(也许问题在于它已经认为自己已经完成了这个工作)。
另外,你的问题标题并不具有实际意义。PostgreSQL没有与"delayed_job"合作的问题。不仅你没有一个名为"delayed_job"的表格,而且问题显然出现在Rail的create或migrate脚本中。

我认为你是对的,我手动插入了表格,它可以工作。根据要求更改了标题。 - sent-hil
1
我也遇到了同样的问题。您能解释一下如何手动插入表格吗? - Dan Allan

0

rake db:migrate:redo STEP=88 88是大于你所有表的数字


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接