Dans settings.py
dans le code d'origine que vous lié
à, il semble que vous ayez deux déclarations contradictoires pour vos DATABASES
réglage :
1) ligne 3 :
DATABASES = {'default': dj_database_url.config(default='postgres://localhost')}
2) ligne 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) De plus, le code supplémentaire de votre dernière modification ressemble à une autre méthode pour spécifier les arguments de connexion, qui annule probablement à nouveau les effets des déclarations précédentes.
Ces méthodes ne sont pas destinées à être empilées les unes sur les autres. Vous ne voulez en choisir qu'un.
De plus, techniquement, en tant qu'initiateur d'une connexion côté client à un serveur de base de données, vous êtes censé savoir si le serveur doit être atteint via TCP (et dans ce cas son nom d'hôte ou son adresse IP plus le port), ou via un fichier de socket de domaine Unix, et dans ce cas son chemin de répertoire complet (commençant par une barre oblique). Dans les deux cas, cela va dans le HOST
partie des paramètres de connexion.
Postgres fournit des valeurs par défaut pour tous ces éléments, mais dès que vous mélangez et associez différentes parties logicielles de différentes sources, ces valeurs par défaut ne sont plus utiles et donner des valeurs explicites devient une exigence.
En cas de doute sur le chemin du socket, à l'intérieur de psql
lorsqu'il est connecté en tant qu'utilisateur postgres, ce chemin peut être obtenu par la commande SQL :
SHOW unix_socket_directory;
Ce paramètre est également présent dans le côté serveur postgresql.conf
fichier de configuration.