我尝试在postgres中为一个django应用程序执行python manage.py makemigrations
,但是我收到了以下错误:
django.db.utils.OperationalError: connection to server at "localhost" (::1), port 5432 failed: FATAL: database "backend_db" does not exist
在此之前,我使用以下docker-compose
和.env
文件执行docker compose
:
x一个一个一个一个x一个一个二个x
我定义postgres的settings.py
部分如下:
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')
}
}
知道是什么导致了这个错误吗?
2条答案
按热度按时间ogq8wdun1#
我相信您可以用途:
您可能需要将
web
更改为相应的服务。vawmfj5a2#
我遇到了同样的问题,结果发现在我的情况下,有一个PostgreSQL服务器(通过Postbird)在我的本地计算机上运行,python服务器无意中连接到了它,而不是Docker容器中的服务器。上下文:我通常在本地运行我的python应用程序(例如,使用
python manage.py runserver
本地运行),并在Docker容器中运行数据库服务,通过端口转发连接。解决方案是终止本地Postgres示例,让python服务器连接到Docker示例