Py学习  »  Django

测试中的Django外部MySQL DB连接投诉“未知数据库”

James Lin • 5 年前 • 1184 次点击  

在我的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}
    }
}

注:

  1. 这个 default other_1 两者都是 postgres 后端和 other_2 mysql 后端。
  2. 我补充说 "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'")

如果我把 其他2 连接,测试运行正常。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/43743
 
1184 次点击  
文章 [ 1 ]  |  最新文章 5 年前