2014-02-13 82 views
0

我想學習一點與Postgres和Django pgbouncer - 但我似乎有生產時遇到問題。pgbouncer postgres多個Django站點

所以,我有一個Django網站說site1,它使用下面的Django的數據庫settings.py:上述

SECRET_KEY = "dbpassword" 
DATABASES = { 
    'default': { 
     'ENGINE': 'django.db.backends.postgresql_psycopg2', 
     'NAME': 'site1db1',      
     'USER': 'postgres', 
     'PASSWORD': SECRET_KEY, 
     'HOST': 'localhost',      
     'PORT': '12517', # custom pgbouncer post      
     } 
    } 

作品全部用site1罰款 - 這是在生產現場運行。現在,我用一個新的數據庫site2db2引入另一個名爲site2的django站點(單獨的django安裝)。所以,在那一刻,我有我的settings.py爲site2在Django如下:

SECRET_KEY = "dbpassword" 
DATABASES = { 
    'default': { 
     'ENGINE': 'django.db.backends.postgresql_psycopg2', 
     'NAME': 'site2db2',      
     'USER': 'postgres', 
     'PASSWORD': SECRET_KEY, 
     'HOST': 'localhost',      
     'PORT': '12517', # custom pgbouncer post      
     } 
    } 

不幸的是,當我嘗試syncdb這個第二Django的網站,我得到的;

django.db.utils.OperationalError: ERROR: Auth failed 

我假設這是因爲site1是使用同一端口site2?如何解決這個問題。任何指導我指向正確方向的指導都會很棒。

回答

0

可能是您的django應用程序的連接字符串仍然使用postgresql用戶名和密碼。將連接字符串設置爲pgbouncer的端口號,用戶名和密碼。檢查pbBouncer配置文件中的auth_type,將其設置爲信任並查看它是否有效。

希望這給你一個提示

+0

能否請您解釋一下你的意思'可能是你的Django應用程序的連接字符串仍使用PostgreSQL用戶名和password.'?我爲這兩個django站點使用了相同的用戶名和密碼 - 它只是數據庫名稱不同 - 這不是它應該如何?對不起,如果問題是101. – AJW

+0

我從來沒有使用django,但我認爲,而不是USERNAME postgres和PASSWORD SECRET_KEY,你應該使用pgbouncer username和密碼。這可以在pgbouncer配置文件auth_type字段中找到。 –