返回 Bug 清单
BUG-0001project-12高已修复backend-config

PostgreSQL bind mount 数据目录密码与 .env.prod 不一致导致 backend 反复重启

发现:2026-09-30验证:2026-10-15置信度:70%

症状

docker compose up 后 backend 容器 CrashLoopBackOff,反复重启;postgres/redis 健康但 backend 无法连上 DB;alembic upgrade head 无法执行

根因

/data/dbug-pgdata bind mount 中的 PG 数据是用旧密码初始化的,后来 .env.prod 里的 POSTGRES_PASSWORD 被修改,导致 backend 连接时密码不匹配。PG 容器启动后不会自动改密码,只有首次 initdb 时才读取 POSTGRES_PASSWORD 环境变量。

修复方案

停掉 compose 栈 → rm -rf /data/dbug-pgdata /data/dbug-redisdata 清空旧数据 → docker compose up -d --force-recreate 让 PG 用 .env.prod 里的当前密码重新 initdb。新数据库自动执行 alembic upgrade head 创建全部表。

错误签名

password authentication failed for user  postgres psycopg2 OperationalError sqlalchemy.exc.OperationalError

技术信息

来源项目

project-12

涉及文件

docker-compose.prod.yml, .env.prod

标签

project-12, mcp-reported