Ошибка восстановления резервной копии базы данных postgres - PullRequest
2 голосов
/ 21 октября 2010

Я настроил систему для автоматической загрузки и сохранения дБ из моего развернутого приложения Heroku rails. Все работает отлично, но когда я загружаю дамп и восстанавливаю его на свой локальный сервер postgres, затем пытаюсь запустить локальное приложение из восстановленной базы данных, я получаю эту ошибку

ActiveRecord::StatementInvalid in HomeController#index

PGError: ERROR:  permission denied for relation users : SELECT     "users".* FROM       "users"  WHERE     ("users"."id" = 1) LIMIT 1

У кого-нибудь есть предложения по поводу того, что это может быть? Я проверил свои права на postgres, и все таблицы и сама база данных принадлежат пользователю postgres. Я тоже пробовал GRANT ALL, но безуспешно.

Ответы [ 2 ]

2 голосов
/ 22 октября 2010

Просмотрите ваши pgdump.sql файлы и удалите после каждого оператора CREATE TABLE строки, которые говорят что-то вроде:

ALTER TABLE public.users OWNER TO eqrunyvndu;

Затем запустите восстановление из этого, и оно должно работать.Эти строки изменяют владельца таблиц на автоматически сгенерированное имя пользователя db вашего приложения heroku, которое не имеет смысла локально, поэтому вы можете просто удалить их.

Я бы также рекомендовал greping для любых других вхождений этого имени пользователя и удаления этихтоже.

0 голосов
/ 21 октября 2010

Скорее всего, пользователь PostgreSQL, которого вы используете, отличается от владельца этой таблицы.Я полагаю, у вас есть другой пользователь в этой базе данных и в этой?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...