0

我在rails中更改了我的表名,之后我收到了这个错误:

PG::Error: ERROR:  relation "old_table_name" does not exist
LINE 4:              WHERE a.attrelid = '"old_table_name"'::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 = '"old_table_name"'::regclass
               AND a.attnum > 0 AND NOT a.attisdropped
             ORDER BY a.attnum

我应该怎么做才能摆脱这个错误?

4

2 回答 2

1

您需要确保您的模型、控制器、关联等也得到纠正。该错误表明您的 Rails 应用程序的一部分仍在使用旧名称。

这个错误看起来像是来自 Rails 日志。如果您在前面几行,PG::Error它应该指出进行此引用的代码部分,因此应该告诉您需要在哪里进行更正。

于 2012-08-12T16:26:46.940 回答
0

由于错误明确指的是 a relation,我猜你在某个地方仍然有 a

has_many :old_names

或者

 belongs_to :old_name

另外:您是否更改了任何外键以匹配新名称?例如new_table_name_id,而不是old_table_name_id

希望这可以帮助。

于 2012-08-12T17:12:18.710 回答