После восстановления 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