Configuración de Django cuando se usa pgbouncer

Tengo un sitio web de Django con backend Postgresql, para el que estoy utilizandopgbouncer para la agrupación de conexiones db (modo de transacción).

La aplicación y la base de datos residen en servidores separados (1 servidor cada uno). He instaladopgbouncer en el servidor de aplicaciones. Mi pregunta es: ¿en qué debe estar la configuración?settings.py? Tenga en cuenta que estoy usandoEnchufes Unix para conectar a pgbouncer.

Mi actualsettings.py contiene:

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

Secciones relevantes depgbouncer.ini son:

[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 contiene:

"user1" "pass1"

Nota: Una respuestaes aquí, pero no funciona para mí ya que el DB no está disponible localmente en mi caso. Necesito establecer la variable de entorno DATABASE_URL, en lugar de usardefault = '...'.

Una sugerencia parece ser tratarpgbouncer como una base de datos ensettings.py. En ese caso, ¿funcionaría algo como lo siguiente?

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',
        }

Respuestas a la pregunta(2)

Su respuesta a la pregunta