In de settings.py
in de originele code die je linkte
naar, het lijkt erop dat u twee tegenstrijdige verklaringen heeft voor uw DATABASES
instelling:
1) regel 3:
DATABASES = {'default': dj_database_url.config(default='postgres://localhost')}
2) regel 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) Ook lijkt de aanvullende code van uw laatste bewerking nog een andere methode om de verbindingsargumenten te specificeren, die waarschijnlijk weer de effecten van de vorige declaraties tenietdoet.
Deze methoden zijn niet bedoeld om op elkaar te worden gestapeld. Je wilt er maar één kiezen.
Ook, technisch gezien, moet je als initiator van een client-side verbinding met een db-server weten als de server moet worden bereikt via TCP (en in dit geval de hostnaam of het IP-adres plus poort), of via een Unix-domein-socketbestand, en in dat geval het volledige directorypad (beginnend met een schuine streep). In beide gevallen gaat dit naar de HOST
onderdeel van de verbindingsparameters.
Postgres biedt standaardwaarden voor al deze, maar zodra u verschillende softwareonderdelen uit verschillende bronnen mixt en matcht, helpen deze standaardwaarden niet langer en wordt het geven van expliciete waarden een vereiste.
Bij twijfel over het pad van de socket, binnen psql
wanneer verbonden als de postgres-gebruiker, kan dit pad worden verkregen door het SQL-commando:
SHOW unix_socket_directory;
Deze instelling is ook aanwezig in de server-side postgresql.conf
configuratiebestand.