重命名表后出现问题

时间:2012-08-12 16:22:40

标签: ruby-on-rails ruby-on-rails-3 postgresql

我在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

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

2 个答案:

答案 0 :(得分:1)

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

此错误看起来像是来自Rails日志。如果你在PG::Error之前看几行,它应该指出代码的一部分,并且应该告诉你需要在何处进行修正。

答案 1 :(得分:0)

由于错误明确指的是relation,我猜你还有某个地方

has_many :old_names

 belongs_to :old_name

另外:您是否更改了任何外键以匹配新名称?例如。 new_table_name_id代替old_table_name_id

希望这有帮助。