Django-Einstellungen bei Verwendung von pgbouncer

Ich habe eine Django-Website mit Postgresql-Backend, für die ich @ verwendpgbouncer für Datenbankverbindungspooling (Transaktionsmodus).

Die Anwendung und die Datenbank befinden sich auf separaten Servern (jeweils 1 Server). Ich habe installiertpgbouncer auf dem Anwendungsserver. Meine Frage ist: was soll die Konfig in @ sesettings.py? Beachte, dass ich @ benutUnix sockets für die Verbindung zu pgbouncer.

Meine jetzigesettings.py enthält:

DATABASE_URL = 'postgres://user1:[email protected]:5432/db1'
DATABASES = {
'default': dj_database_url.config(default=DATABASE_URL)
}

Relevante Abschnitte vonpgbouncer.ini sind

[databases]
db1 = host=xx.xxx.xxx.xxx port=5432 dbname=db1

listen_addr = *
listen_port = 6432
auth_type = md5
unix_socket_dir = /var/run/postgresql
pool_mode = transaction
max_client_conn = 200
default_pool_size = 300

userlist.txt enthält:

"user1" "pass1"

Hinweis Eine Antwortist hie, funktioniert aber bei mir nicht, da die DB in meinem Fall nicht lokal verfügbar ist. Ich muss die Umgebungsvariable DATABASE_URL festlegen, anstatt @ zu verwendedefault = '...'.

in Vorschlag scheint zu sein, @ zu behandepgbouncer als Datenbank insettings.py. Wäre in diesem Fall etwas wie die folgende Arbeit?

if PRODUCTION == '1':
    #PRODUCTION is set to '1' if in production environment
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.postgresql_psycopg2',
            'NAME': 'pgbouncer',
            'USER': 'user1',
            'PASSWORD': 'pass1',
            'HOST': '/var/run/postgresql',
            'PORT': '6432',
        }

Antworten auf die Frage(4)

Ihre Antwort auf die Frage