django.db.utils.operational迁移后出现错误

ifmq2ha2  于 2023-02-10  发布在  Go
关注(0)|答案(2)|浏览(180)

我尝试在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')
    }
}

知道是什么导致了这个错误吗?

ogq8wdun

ogq8wdun1#

我相信您可以用途:

docker-compose run web python manage.py makemigrations

您可能需要将web更改为相应的服务。

vawmfj5a

vawmfj5a2#

我遇到了同样的问题,结果发现在我的情况下,有一个PostgreSQL服务器(通过Postbird)在我的本地计算机上运行,python服务器无意中连接到了它,而不是Docker容器中的服务器。上下文:我通常在本地运行我的python应用程序(例如,使用python manage.py runserver本地运行),并在Docker容器中运行数据库服务,通过端口转发连接。
解决方案是终止本地Postgres示例,让python服务器连接到Docker示例

相关问题