Категорії
DataBases Misc, staff, other

[postgresql] relation “n” does not exist

Вообщем, частенько сталкиваясь с таким сообщением, и потом гуглением по этому поводу. Поэтому, решил накидать пару строчек, почему такое сообщение вылазит и как с ним бороться.

Причина: основная причина – это недостаточно прав для совершения какой-либо операции (connect, select, insert, update,…)

Решение: дать соответствующие права.

Подвох: просто так дать права не получится, если вы уже внесли данные, которые принадлежат другому юзеру. Например, есть БД db1 и владелец её user1. Но если вы создали в этой БД таблицу или схему от другого юзера, то будут проблемы. Такой же эффект (в плане проблемы) возникает, если делать restore из dump’a таким образом:

$psql db1 < dump.sql

в этот случае (мы сейчас находимся под юзером pgsql (юзер, от которого запущен серверpostgresql)) владельцем новых данных станет юзер pgsql. Для того, что бы такого не произошло, нужно правильно делать restore (следить за правами):

$psql db1 -U user1 < dump.sql

после этого всё будет в норме. Не забывайте, про это, это вам не mysql!

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *

Домашняя страничка Andy
Записки молодого админа
Самостоятельная подготовка к Cisco CCNA
Самостоятельная подготовка к Cisco CCNP
Powered by Muff