2017-04-21 227 views
0

我用我的myapp以下sqlite的連接/ settings.py文件:Django的psycopg2.OperationalError:fe_sendauth錯誤,但沒有連接到PostgreSQL數據庫

DATABASES = { 
    'default': { 
     'ENGINE': 'django.db.backends.sqlite3', 
     'NAME': ':testdb:', 
     #I also tried 'NAME': 'testdb', 
    }, 
} 

在我的manage.py文件我使用:

if __name__ == "__main__": 
    os.environ.setdefault("myapp.settings") 
    from django.core.management import execute_from_command_line 
    execute_from_command_line(sys.argv) 

上運行./manage.py遷移命令行中我碰到下面的錯誤上:

django.db.utils.OperationalError: fe_sendauth: no password supplied 

我試圖消除psycopg2並重新運行遷移並得到以下錯誤:

django.core.exceptions.ImproperlyConfigured: Error loading psycopg2 module: No module named 'psycopg2' 

我不能工作了,爲什麼Django是試圖連接到一個數據庫PSQL其中的應用程序的唯一DATABSES配置是sqlite3的。

這可能是由於依賴?

+0

這可能是由於其中一個依賴關係。你介意分享你的整個settings.py文件嗎?我相信有些地方,有一個導入覆蓋你的'DATABASES'變量 –

+0

@KrishnaChaitanyaKornepati是依賴關係,我編輯了dep中的源代碼。要解決這個問題。你可以把你的評論放在上面,也許可以解釋爲什麼它必須是一個依賴項,如果我沒有在我的設置中使用psql任何地方,我會接受你的回答 – proximacentauri

回答

0

Django只使用DATABASES設置來使用特定數據庫驅動程序生成遷移。我相信在某個地方,有一個重要的覆蓋你的DATABASES設置。這些可能是按優先級順序查找調試的地方。

  1. 任何進口到settings.py文件後,你設置DATABASES變量可能覆蓋它。
  2. 如果不是這種情況,有些依賴項必須手動覆蓋此設置。你可能想看看你的INSTALLED_APPS
  3. 如果仍然不夠,您可能需要查看您正在嘗試與django交互的項目中使用的任何其他依賴項。
0

試試這個,

import os 
BASE_DIR = os.path.dirname(os.path.dirname(__file__)) 

DATABASES = { 
    'default': { 
     'ENGINE': 'django.db.backends.sqlite3', 
     'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), 
    } 
} 

這可能對你有所幫助。

+0

我得到和以前一樣的錯誤,我很確定問題是依賴關係。如果我可以解決它,將工作,併發布答案 – proximacentauri