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どこかにまだあると推測しています

has_many :old_names

また

 belongs_to :old_name

また、新しい名前に合わせて外部キーを変更しましたか? たとえば、 ?new_table_name_idの代わりにold_table_name_id

お役に立てれば。

于 2012-08-12T17:12:18.710 に答える