Docker Compose构建警告及Django数据库角色/表异常求助
问题解决方案
1. 解决"The 'd' variable is not set"警告
这个警告来自Docker Compose或项目启动脚本中引用了未定义的环境变量$d,处理方式:
- 检查项目根目录的
docker-compose.yml、.env文件或启动脚本,定位使用${d}的位置 - 若该变量无实际用途,直接删除对
$d的引用;若需要保留,给它设置默认值,比如写成${d:-}(留空默认值)或${d:-your_default}
2. 数据库角色与表异常处理
2.1 "newrelic"用户不存在的认证错误
这是因为项目配置了New Relic监控,但PostgreSQL中未创建对应角色:
- 若需要保留New Relic监控:
- 进入PostgreSQL容器:
docker exec -it tarzan-memory psql -U postgres - 创建用户并授权:
CREATE ROLE newrelic WITH LOGIN PASSWORD 'your_set_password'; GRANT CONNECT ON DATABASE your_target_db TO newrelic; GRANT SELECT ON ALL TABLES IN SCHEMA public TO newrelic; - 同步项目中New Relic配置的数据库密码与上述设置一致
- 进入PostgreSQL容器:
- 若不需要New Relic监控:
找到项目中New Relic相关配置(比如settings.py中的初始化代码、环境变量里的NEW_RELIC_*项),注释或删除这些配置
2.2 QRTZ系列表不存在的错误
这些表是Metabase调度器依赖的Quartz定时任务表,需要初始化表结构:
- 执行Quartz的PostgreSQL初始化脚本:
- 获取对应Quartz版本的PostgreSQL初始化脚本(可从Quartz官方仓库或Metabase文档中获取)
- 进入容器执行脚本:
docker exec -i tarzan-memory psql -U postgres -d your_target_db < quartz_postgres_init.sql
- 若项目包含对应迁移文件,直接运行Django迁移:
docker-compose run web python manage.py migrate - 确保Metabase服务的数据库连接配置正确,能正常访问目标数据库
内容的提问来源于stack exchange,提问作者Bruno Peixoto
相关产品推荐
相关产品推荐

