Psycopg2.OperationalError после makemigrations
Я пытаюсь python manage.py makemigrations для приложения django в postgres, но получаю следующую ошибку:
psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: FATAL: database "backend_db" does not exist
Перед этим я делаю docker compose следующее docker-compose и .env файл:
version: '3.2'
services:
postgres:
image: postgres:13.4
environment:
POSTGRES_DB: backend_db
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
volumes:
- database-data:/var/lib/postgresql/data/
ports:
- 5432:5432
networks:
- postgres
volumes:
database-data:
driver: local
networks:
postgres:
driver: bridge
DB_NAME='backend_db'
DB_USER='postgres'
DB_PASSWORD='postgres'
# DB_HOST is localhost or the IP of the machine running postgres
DB_HOST='localhost'
DB_PORT='5432'
Часть settings.py, в которой я определяю postgres, следующая:
DATABASES = {
'default': get_config(
'DATABASE_URL',
'sqlite:///' + BASE_DIR.child('db.sqlite3'),
cast=db_url
),
'postgres': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': get_config('DB_NAME', 'backend_db'),
'USER': get_config('DB_USER', 'postgres'),
'PASSWORD': get_config('DB_PASSWORD', 'postgres'),
'HOST': get_config('DB_HOST', 'postgres-service'),
'PORT': get_config('DB_PORT', '5432')
}
}
Есть идеи, что вызывает ошибку?
Я считаю, что вы можете использовать:
docker-compose run web python manage.py makemigrations
Вам может понадобиться изменить web на соответствующую услугу.