Django GitHub Actions CI环境中测试未正确使用指定测试数据库的问题排查求助
Django GitHub Actions CI环境中测试未正确使用指定测试数据库的问题排查求助
大家好,我遇到了一个Django测试数据库在GitHub Actions CI环境里的奇怪问题,想请各位帮忙排查一下:
我在Django的数据库配置里,已经明确指定了正常运行服务器时使用portfolio_db,测试阶段应该使用test_portfolio_db,具体配置代码如下:
DATABASES = { "default": { "ENGINE": "django.db.backends.mysql", "NAME": "portfolio_db", "USER": "python", "PASSWORD": "python123", "HOST": "localhost", "PORT": "3306", "TEST": {"NAME": "test_portfolio_db"}, } }
本地环境运行测试完全正常,确实会自动切换到test_portfolio_db,但在GitHub Actions的CI流程里,测试却始终连接portfolio_db,而不是我配置的测试库。按道理GitHub Actions应该会识别Django的TEST配置才对,有没有朋友知道这是哪里出了问题?或者有没有正确配置CI测试数据库的方法?
我整理了几个自己想到的排查方向,也欢迎大家补充:
- 检查CI环境里的Django设置模块是否正确加载:会不会CI流程中使用了不同的settings文件,没包含这个TEST数据库的配置?
- 确认CI流程中MySQL服务的初始化状态:有没有提前创建好
test_portfolio_db?或者是否存在权限问题,导致Django无法创建测试库,最终 fallback到默认的portfolio_db? - 检查测试命令是否正确:有没有在CI里误执行了
runserver而非test命令?或者测试命令加了特殊参数,影响了数据库的选择逻辑? - 查看CI日志里的数据库连接细节:能不能找到具体的数据库连接日志,确认实际连接的是哪个库,有没有相关的报错信息?
备注:内容来源于stack exchange,提问作者yoshitaka okada
相关产品推荐
相关产品推荐

