После восстановления PostgreSQL я получаю "разрешение отклонено для отношения django_session"

В настоящее время я запускаю свой сайт Django 1.1.1 с PostgreSQL 8.4.2 как на реальном сервере, так и локально. Когда я пытаюсь восстановить одну из моих резервных копий с живого сервера в своем локальном поле, я получаю следующую ошибку при доступе к моему сайту локально (http://localhost:8000):

Exception Type: ProgrammingError at /
Exception Value: permission denied for relation django_session

Я также получаю аналогичную ошибку при доступе ко всему содержимому одной из моих моделей:

$ python manage.py shell
Python 2.6.4 (r264:75706, Dec  7 2009, 18:45:15) 
[GCC 4.4.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> from myapp.models import MyModel
>>> MyModel.objects.all()
...
ProgrammingError: permission denied for relation myapp_mymodel

Я использовал pg_dump для резервного копирования на реальном сервере и выпадал локальный db, а затем psql dbname < infile для восстановления. Кто-нибудь знает, что неправильно?

Ответ 1

Вы получаете ту же ошибку при подключении с psql как к одному пользователю (пользователь Django подключается как)? Или у вас есть те же пользователи PostgreSQL на вашем реальном сайте и на вашем локальном компьютере? Если нет, вы должны сбросить/перезагрузить параметр - Ox (или --no-owner), чтобы пропустить команды владения.

Ответ 2

1) Создайте базу данных дампа

$ pg_dump -Fc mydb > db.dump

2) Удалить базу данных

$ dropdb mydb

3) Восстановите его из дампа

$ pg_restore -C -d postgres db.dump