Django при соединении с Postgres говорит, что settings.DATABASES неправильно настроен
Я новичок в Django и postgresql. Dajngo установил соединение на первом шаге и создал мои таблицы, но после этого продолжает говорить "settings.DATABASES неправильно настроен, пожалуйста, предоставьте значение NAME или OPTIONS['service'].". Я действительно не знаю, в чем проблема. Я выложу часть кода, связанного с базой данных. Моя база данных работает, и я могу видеть свои таблицы в ней через pgAdmin. Версия Django - 4.1.4, версия psycopg2 - 2.9.5.
Мой sttings.py
POSTGRES_HOST = os.environ.get('POSTGRES_HOST', default="")
POSTGRES_DB = os.environ.get('POSTGRES_DB', default="")
POSTGRES_USER = os.environ.get('POSTGRES_USER', default="")
POSTGRES_PASSWORD = os.environ.get('POSTGRES_PASSWORD', default="")
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': POSTGRES_DB,
'USER': POSTGRES_USER,
'PASSWORD': POSTGRES_PASSWORD,
'HOST': POSTGRES_HOST,
'PORT': 5432,
}
}
Мой docker-compose.yml
version: "3.11"
x-service-volumes: &service-volumes
- ./:/app/:rw,cached
x-database-variables: &database-variables
POSTGRES_DB: postgres
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
x-app-variables: &app-variables
<<: *database-variables
POSTGRES_HOST: postgres
services:
website:
image: iranrevolution-website:latest
command: python3 manage.py runserver 0.0.0.0:8000
volumes: *service-volumes
depends_on:
- db_migrate
ports:
- "8000:8000"
db_migrate:
image: iranrevolution-website:latest
command: python3 manage.py migrate
volumes: *service-volumes
environment: *app-variables
depends_on:
- postgres
postgres:
image: postgres
ports:
- "5432:5432"
environment: *database-variables
volumes:
- db-data:/var/lib/postgresql/data
volumes:
db-data:
Я проверил, что и проект, и база данных запущены в docker. и база данных прослушивает новые соединения. Я попытался подставить реальные значения в качестве значений по умолчанию, как показано ниже: POSTGRES_DB = os.environ.get('POSTGRES_DB', default="postgres")
Мне нужно было изменить docker-compose.yml в части сайта следующим образом:
services:
website:
image: myproject-website:latest
command: python3 manage.py runserver 0.0.0.0:8000
volumes: *service-volumes
depends_on:
- db_migrate
- postgres
environment: *app-variables
ports:
- "8000:8000"