2010-02-20 45 views
10

Tôi hiện đang chạy trang web Django 1.1.1 của tôi với PostgreSQL 8.4.2 cả trên máy chủ trực tiếp và cục bộ. Khi tôi cố gắng để khôi phục lại một sao lưu của tôi từ máy chủ trực tiếp trên hộp địa phương của tôi, tôi nhận được lỗi sau khi truy cập trang web của tôi tại địa phương (http://localhost:8000):Sau khi khôi phục PostgreSQL, tôi nhận được "quyền từ chối cho quan hệ django_session"

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

Tôi cũng nhận được một lỗi tương tự khi truy cập tất cả các nội dung của một trong những mô hình của tôi:

$ 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 

tôi đã sử dụng pg_dump để sao lưu trên máy chủ trực tiếp và thả db địa phương của tôi tiếp theo psql dbname < infile cho khôi phục. Có ai biết điều gì sai?

Trả lời

13

Bạn có gặp lỗi tương tự khi kết nối với psql với cùng một người dùng (người dùng Django kết nối như) không? Hay bạn có cùng người dùng PostgreSQL trên trang web trực tiếp và máy cục bộ của bạn? Nếu không, bạn nên đổ/tải lại với tùy chọn -Ox (hoặc --no-owner) để bỏ qua các lệnh quyền sở hữu.

+1

Tôi không có người sử dụng PostgreSQL cùng trên trang web trực tiếp của tôi là máy địa phương của tôi. Tôi đã thử dump/tải lại với -Ox, nhưng bây giờ tôi nhận được một lỗi khác nhau: quan hệ "django_site" không tồn tại LINE 1: ... "django_site". "Domain", "django_site". "Name" FROM "django_si ... "Mọi ý tưởng về những gì có thể xảy ra ở đây? Cảm ơn bạn! – mkelley33

+0

@ mkelley33: bạn có biết tại sao bạn lại gặp phải lỗi mới này không và cách giải quyết nó? Liệu nó có cái gì để làm với chạy 'syncdb'? Bất kỳ gợi ý nào sẽ được đánh giá cao vì tôi hiện đang ở cùng một chiếc thuyền. –

0

1) Tạo cơ sở dữ liệu bãi

$ pg_dump -Fc mydb > db.dump 

2) Xóa cơ sở dữ liệu

$ dropdb mydb 

3) Tái nó từ bãi

$ pg_restore -C -d postgres db.dump 
Các vấn đề liên quan