web-dev-qa-db-ja.com

PGError:エラー:リレーションの列が存在しません

列「isGroup」の値を値「public」に変更しようとしています。

マイグレーションを作成しました:

Post.connection.execute("update Posts set isgroup='public'")

ただし、次のエラーが発生します。

PGError: ERROR:  column "isgroup" of relation "posts" does not exist

残念ながら、connection.execute移行と同時に、移行を作成する列を実行しました。ただし、「isGroup」列はHerokuに存在するため、列が表示されないのは奇妙です。

何かアドバイス?

22
user749798

isGroupが存在することが確かな場合は、次のように引用する必要があります。

UPDATE posts SET "isGroup" = 'public'

デフォルトでは、PostgreSQLは引用符で囲まれていない名前をすべて小文字に変換します。

この混乱と引用の必要性を避けるために、ALTER TABLE ... RENAME COLUMN ...を使用してisGroupisgroupに名前変更したい場合があります。

33
mvp