【发布时间】:2026-01-04 04:30:01
【问题描述】:
在我的 django 项目中,我有几个数据库连接:
例如。
DATABASES = {
"default": {
"ENGINE": "django.db.backends.postgresql_psycopg2",
"NAME": "awesome",
...
},
"other_1": {
"ENGINE": "django.db.backends.postgresql_psycopg2",
"NAME": "other_1",
"TEST": {"MIRROR": default}
...
},
"other_2": {
"ENGINE": "django.db.backends.mysql",
"NAME": "other_2",
"TEST": {"MIRROR": default}
}
}
注意:
-
default和other_1都是postgres后端和other_2是mysql后端。 - 我在额外的数据库配置中添加了
"TEST": {"MIRROR": default},以避免在测试期间创建这些数据库。看到这个link。
问题:
当我运行测试时,它抱怨 Unknown database 'test_awesome',堆栈跟踪显示它来自 MYSQL 后端:
Traceback (most recent call last):
File "/Users/jlin/virtualenvs/awesome-1SH6mAZ2/lib/python3.6/site-packages/django/test/testcases.py", line 1005, in setUpClass
if not connections_support_transactions():
File "/Users/jlin/virtualenvs/awesome-1SH6mAZ2/lib/python3.6/site-packages/django/test/testcases.py", line 970, in connections_support_transactions
...
File "/Users/jlin/virtualenvs/awesome-1SH6mAZ2/lib/python3.6/site-packages/MySQLdb/__init__.py", line 85, in Connect
return Connection(*args, **kwargs)
File "/Users/jlin/virtualenvs/awesome-1SH6mAZ2/lib/python3.6/site-packages/MySQLdb/connections.py", line 204, in __init__
super(Connection, self).__init__(*args, **kwargs2)
django.db.utils.OperationalError: (1049, "Unknown database 'test_awesome'")
如果我注释掉other_2 连接,测试运行正常。
【问题讨论】:
标签: mysql django django-unittest