sql >> Base de Datos >  >> RDS >> PostgreSQL

Django con la aplicación PostgreSQL en Heroku no se sincroniza

En el settings.py en el código original que vinculó a, parece que tiene dos declaraciones contradictorias para sus DATABASES ajuste:

1) línea 3:

DATABASES = {'default': dj_database_url.config(default='postgres://localhost')}

2) línea 16:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
        'NAME': 'traineeworld',                      # Or path to database file if using sqlite3.
        'USER': '',                      # Not used with sqlite3.
        'PASSWORD': '',                  # Not used with sqlite3.
        'HOST': '',                      # Set to empty string for localhost. Not used with sqlite3.
        'PORT': '',                      # Set to empty string for default. Not used with sqlite3.
    }
}

3) Además, el código adicional de su última edición parece otro método más para especificar los argumentos de conexión, que probablemente niega nuevamente los efectos de las declaraciones anteriores.

Estos métodos no están destinados a apilarse unos sobre otros. Quieres elegir solo uno.

Además, técnicamente, como iniciador de una conexión del lado del cliente a un servidor de base de datos, se supone que debe saber si se va a acceder al servidor a través de TCP (y en este caso su nombre de host o dirección IP más puerto), o a través de un archivo de socket de dominio Unix, y en ese caso su ruta de directorio completa (comenzando con una barra inclinada). En ambos casos, esto va al HOST parte de los parámetros de conexión.

Postgres proporciona valores predeterminados para todos estos, pero tan pronto como mezcla y combina diferentes partes de software de diferentes fuentes, estos valores predeterminados ya no ayudan y dar valores explícitos se convierte en un requisito.

En caso de duda sobre la ruta del socket, dentro de psql cuando se conecta como usuario de postgres, esta ruta se puede obtener mediante el comando SQL:

SHOW unix_socket_directory;

Esta configuración también está presente en el lado del servidor postgresql.conf archivo de configuración.