2016-08-14 33 views
7

排除原因並縮小」django.db.utils.ProgrammingError:針對關係django_migrations拒絕權限「原因的一些基本步驟」 Django錯誤?排除「django.db.utils.ProgrammingError:針對關係django_migrations拒絕權限」的步驟「

在最初是一個穩定的生產服務器之後,我收到了這個消息,但後來對Django,Postgres,Apache以及Github的一些方面做了一些更改。另外,這些改變已經有一段時間了,我不記得或不能追蹤可能導致問題的每一項變化。

當我運行python manage.py runserver或任何其他python manage.py ...命令(除python manage.py check之外)時,我收到消息,該消息聲明系統良好。

+0

在您的settings.py文件的數據庫設置是否正確?該用戶是否存在於Postgres中?密碼是否正確? –

+0

@ResleyRodrigues我在用戶'ubuntu'下運行manage.py,但是我的虛擬環境將DATABASE_USER env變量設置爲'dbuser',它也在我的Django生產設置文件的DATABASES定義中使用。在Postgres中,'dbuser'存在並且被我們認爲是正確的特權。 'dbuser'具有屬性_Create DB_作爲postgres用戶並且具有對_CTc_的數據庫的訪問權限。 – user3062149

+0

[此幫助](http://stackoverflow.com/questions/32471976/getting-error-while-syncdb-django-db-utils-programmingerror-permission-denied-f)? –

回答

29

我能夠根據這個question的指示解決我的問題。基本上,postgres特權需要重新授予數據庫用戶。就我而言,這是我在虛擬環境設置文件中設置的用戶。從運行命令行(或內Postgres的),其中mydatabasedbuser應該是你自己的數據庫和用戶名如下:

psql mydatabase -c "GRANT ALL ON ALL TABLES IN SCHEMA public to dbuser;" 
psql mydatabase -c "GRANT ALL ON ALL SEQUENCES IN SCHEMA public to dbuser;" 
psql mydatabase -c "GRANT ALL ON ALL FUNCTIONS IN SCHEMA public to dbuser;" 
+0

哇,謝謝!到處尋找解決方案。當我已經遷移了數據庫,然後嘗試設置geodjango時,我遇到了這個問題。 – qasimalbaqali