Di settings.py
dalam kode asli yang Anda tautkan
untuk, tampaknya Anda memiliki dua deklarasi yang kontradiktif untuk DATABASES
. Anda pengaturan:
1) baris 3:
DATABASES = {'default': dj_database_url.config(default='postgres://localhost')}
2) baris 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) Selain itu, kode tambahan dari hasil edit terbaru Anda terlihat seperti metode lain untuk menentukan argumen koneksi, yang mungkin meniadakan lagi efek dari deklarasi sebelumnya.
Metode-metode ini tidak dimaksudkan untuk ditumpuk satu sama lain. Anda hanya ingin memilih satu.
Selain itu, secara teknis, sebagai inisiator koneksi sisi klien ke server db, Anda seharusnya tahu jika server akan dijangkau melalui TCP (dan dalam hal ini nama host atau alamat IP plus port), atau melalui file soket domain Unix, dan dalam hal ini jalur direktori lengkapnya (dimulai dengan garis miring). Dalam kedua kasus, ini masuk ke HOST
bagian dari parameter koneksi.
Postgres memberikan nilai default untuk semua ini, tetapi segera setelah Anda mencampur dan mencocokkan bagian perangkat lunak yang berbeda dari sumber yang berbeda, default ini tidak lagi membantu dan memberikan nilai eksplisit menjadi persyaratan.
Jika ragu tentang jalur soket, di dalam psql
ketika terhubung sebagai pengguna postgres, jalur ini dapat diperoleh dengan perintah SQL:
SHOW unix_socket_directory;
Pengaturan ini juga ada di postgresql.conf
sisi server file konfigurasi.