Trong settings.py
trong mã gốc mà bạn đã liên kết
dường như bạn có hai khai báo trái ngược nhau cho DATABASES
của mình cài đặt:
1) dòng 3:
DATABASES = {'default': dj_database_url.config(default='postgres://localhost')}
2) dòng 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) Ngoài ra, mã bổ sung của bản chỉnh sửa mới nhất của bạn trông giống như một phương pháp khác để chỉ định các đối số kết nối, có thể phủ định một lần nữa các tác động của các khai báo trước đó.
Các phương pháp này không có nghĩa là được xếp chồng lên nhau. Bạn chỉ muốn chọn một.
Ngoài ra, về mặt kỹ thuật, với tư cách là người khởi tạo kết nối phía máy khách với máy chủ db, bạn phải biết nếu máy chủ được truy cập thông qua TCP (và trong trường hợp này là tên máy chủ hoặc địa chỉ IP cộng với cổng) hoặc thông qua tệp ổ cắm miền Unix và trong trường hợp đó là đường dẫn thư mục đầy đủ của nó (bắt đầu bằng dấu gạch chéo). Trong cả hai trường hợp, điều này đi vào HOST
một phần của các tham số kết nối.
Postgres cung cấp các giá trị mặc định cho tất cả những thứ này, nhưng ngay khi bạn trộn và kết hợp các phần phần mềm khác nhau từ các nguồn khác nhau, các giá trị mặc định này không còn hữu ích và việc đưa ra các giá trị rõ ràng trở thành một yêu cầu.
Khi nghi ngờ về đường dẫn của ổ cắm, bên trong psql
khi được kết nối với tư cách là người dùng postgres, có thể lấy đường dẫn này bằng lệnh SQL:
SHOW unix_socket_directory;
Cài đặt này cũng có trong postgresql.conf
phía máy chủ tệp cấu hình.