gpt4 book ai didi

django - Docker - psql : django. db.utils.OperationalError: FATAL: 角色 "admin"不存在

转载 作者:行者123 更新时间:2023-11-29 12:41:07 25 4
gpt4 key购买 nike

我已经为我的 Django 项目配置了 docker 和 postgres。

当我执行 python manage.py runserver 0:8000 时,它给了我这个错误:django.db.utils.OperationalError: FATAL: role "admin"does not exist

但是,我在以前的项目中使用了相同的配置,并且在那些项目中一切似乎都很好。

这是我的 docker-compose.yml 文件

version: '3'

services:
db:
image: postgres
environment:
- POSTGRES_DB=myproject
- POSTGRES_USER=admin
- POSTGRES_PASSWORD=admin_pass
container_name: myproject_postgress
volumes:
- ./data/db:/var/lib/postgresql/data

myproject:
build: ./myproject
container_name: myproject
env_file:
- .env
command: "tail -f /dev/null"
volumes:
- ./myproject:/web
ports:
- "8000:8000"
depends_on:
- db
links:
- db:postgres
environment:
- DJANGO_SETTINGS_MODULE=myproject.settings.local

这是我的设置文件中的数据库部分:

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'myproject',
'USER': 'admin',
'PASSWORD': 'admin_pass',
'HOST': 'postgres',
'PORT': '',
}
}

这些与 docker-compose.yml 中的相同

当我从命令行连接我的数据库时,我可以看到有用户“admin”。 (当然是本地)没有 docker,它不会给出任何错误。那么我在 docker 上做错了什么?

附言:在我以前的项目中,我使用 env_file 将 env 文件传递​​给 docker,而不是使用 docker-compose.yml 中的环境部分我也尝试过,但没有用。

找了好久。谢谢!

最佳答案

好吧,过了一会儿,在帮助下,我想通了。我的系统上运行着一个本地 postgres。我猜用户“admin”一直在使用本地 postgres。我删除了我的数据/数据库文件夹并重命名了用户然后它工作了!然后,我再次删除了db文件夹,再次将用户重命名为“admin”,但停止了本地postgres,它也有效!

谢谢

关于django - Docker - psql : django. db.utils.OperationalError: FATAL: 角色 "admin"不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49722565/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com