PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Django com aplicativo PostgreSQL no Heroku não sincroniza


No settings.py no código original que você vinculado para, parece que você tem duas declarações contraditórias para seus DATABASES contexto:

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

2) linha 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) Além disso, o código adicional de sua última edição se parece com outro método para especificar os argumentos de conexão, que provavelmente nega novamente os efeitos das declarações anteriores.

Esses métodos não devem ser empilhados uns sobre os outros. Você quer escolher apenas um.

Além disso, tecnicamente, como o iniciador de uma conexão do lado do cliente com um servidor db, você deve saber se o servidor deve ser alcançado através de TCP (e neste caso seu nome de host ou endereço IP mais porta), ou através de um arquivo de soquete de domínio Unix e, nesse caso, seu caminho de diretório completo (começando com uma barra). Em ambos os casos, isso vai para o HOST parte dos parâmetros de conexão.

O Postgres fornece valores padrão para todos eles, mas assim que você mistura e combina diferentes partes de software de diferentes fontes, esses padrões não ajudam mais e fornecer valores explícitos se torna um requisito.

Na dúvida sobre o caminho do socket, dentro do psql quando conectado como usuário postgres, este caminho pode ser obtido pelo comando SQL:
SHOW unix_socket_directory;

Esta configuração também está presente no postgresql.conf do lado do servidor arquivo de configuração.