2010-02-20 1 views
10

Ich führe derzeit meine Django 1.1.1 Seite mit PostgreSQL 8.4.2 sowohl auf dem Live-Server als auch lokal. Wenn ich versuche, eine meiner Backup aus dem Live-Server auf meinem lokalen Box wiederherzustellen, bekomme ich folgende Fehler während meiner Seite lokal Zugriff (http://localhost:8000):Nach einer PostgreSQL-Wiederherstellung, bekomme ich "Berechtigung verweigert für Relation django_session"

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

Ich habe auch einen ähnlichen Fehler, während alle Inhalte zugreifen eines meiner Modelle:

$ 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 

verwenden ich pg_dump für die Sicherung auf dem Live-Server und meinen lokalen db durch psql dbname < infile für die Wiederherstellung gefolgt fallen. Weiß jemand, was los ist?

Antwort

13

Erhalten Sie den gleichen Fehler bei der Verbindung mit psql als der gleiche Benutzer (der Benutzer Django verbindet als)? Oder haben Sie die gleichen PostgreSQL-Benutzer auf Ihrer Live-Site und Ihrem lokalen Rechner? Wenn nicht, sollten Sie mit der Option -Ox (oder --no-owner) dump/reload laden, um die Besitzbefehle zu überspringen.

+1

ich die gleichen PostgreSQL Benutzer nicht auf haben meine Live-Site als meine lokale Maschine. Ich habe versucht, den Dump/Reload mit -Ox, aber jetzt bekomme ich einen anderen Fehler: Relation "django_site" existiert nicht LINE 1: ... "django_site". "Domain", "django_site". "Name" FROM "django_si ... "Irgendwelche Ideen, was hier passieren könnte? Vielen Dank! – mkelley33

+0

@ mkelley33: Haben Sie herausgefunden, warum Sie diesen neuen Fehler bekommen haben und wie Sie ihn lösen können? Hat es etwas mit dem Ausführen von 'Syncdb' zu tun? Jeder Hinweis würde geschätzt werden, da ich jetzt im selben Boot bin. –

0

1) Erstellen Sie dump database

$ pg_dump -Fc mydb > db.dump 

2) Datenbank löschen

$ dropdb mydb 

3) Erstellen Sie es aus der Deponie

$ pg_restore -C -d postgres db.dump 
Verwandte Themen