升级到django 3.1后无法连接到测试数据库

我正在尝试将Django应用程序从3.0.11迁移到3.1。

我可以运行该应用程序而没有任何问题。但是我不能再运行测试了。

运行时抛出以下错误 python manage.py test

django.db.utils.ConnectionDoesNotExist: The connection e doesn't exist

这是从我的settings.py:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': config("DB_NAME", default='postgres'),
        'USER': config('DB_USER', default='postgres'),
        'PASSWORD': config('DB_PASSWORD', default='postgres'),
        'HOST': config('DB_HOST', default='postgres'),
    }
}

完整的堆栈跟踪:

Creating test database for alias 'default'...
Destroying test database for alias 'default'...
Traceback (most recent call last):
  File "/usr/local/Caskroom/miniconda/base/envs/mysite/lib/python3.8/site-packages/django/db/utils.py", line 172, in ensure_defaults
    conn = self.databases[alias]
KeyError: 'e'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "manage.py", line 15, in <module>
    execute_from_command_line(sys.argv)
  File "/usr/local/Caskroom/miniconda/base/envs/mysite/lib/python3.8/site-packages/django/core/management/__init__.py", line 401, in execute_from_command_line
    utility.execute()
  File "/usr/local/Caskroom/miniconda/base/envs/mysite/lib/python3.8/site-packages/django/core/management/__init__.py", line 395, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/usr/local/Caskroom/miniconda/base/envs/mysite/lib/python3.8/site-packages/django/core/management/commands/test.py", line 23, in run_from_argv
    super().run_from_argv(argv)
  File "/usr/local/Caskroom/miniconda/base/envs/mysite/lib/python3.8/site-packages/django/core/management/base.py", line 330, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/usr/local/Caskroom/miniconda/base/envs/mysite/lib/python3.8/site-packages/django/core/management/base.py", line 371, in execute
    output = self.handle(*args, **options)
  File "/usr/local/Caskroom/miniconda/base/envs/mysite/lib/python3.8/site-packages/django/core/management/commands/test.py", line 53, in handle
    failures = test_runner.run_tests(test_labels)
  File "/usr/local/Caskroom/miniconda/base/envs/mysite/lib/python3.8/site-packages/django/test/runner.py", line 698, in run_tests
    self.run_checks(databases)
  File "/usr/local/Caskroom/miniconda/base/envs/mysite/lib/python3.8/site-packages/django/test/runner.py", line 636, in run_checks
    call_command('check', verbosity=self.verbosity, databases=databases)
  File "/usr/local/Caskroom/miniconda/base/envs/mysite/lib/python3.8/site-packages/django/core/management/__init__.py", line 168, in call_command
    return command.execute(*args, **defaults)
  File "/usr/local/Caskroom/miniconda/base/envs/mysite/lib/python3.8/site-packages/django/core/management/base.py", line 371, in execute
    output = self.handle(*args, **options)
  File "/usr/local/Caskroom/miniconda/base/envs/mysite/lib/python3.8/site-packages/django/core/management/commands/check.py", line 63, in handle
    self.check(
  File "/usr/local/Caskroom/miniconda/base/envs/mysite/lib/python3.8/site-packages/django/core/management/base.py", line 392, in check
    all_issues = checks.run_checks(
  File "/usr/local/Caskroom/miniconda/base/envs/mysite/lib/python3.8/site-packages/django/core/checks/registry.py", line 70, in run_checks
    new_errors = check(app_configs=app_configs, databases=databases)
  File "/usr/local/Caskroom/miniconda/base/envs/mysite/lib/python3.8/site-packages/django/core/checks/model_checks.py", line 34, in check_all_models
    errors.extend(model.check(**kwargs))
  File "/usr/local/Caskroom/miniconda/base/envs/mysite/lib/python3.8/site-packages/django/db/models/base.py", line 1264, in check
    *cls._check_fields(**kwargs),
  File "/usr/local/Caskroom/miniconda/base/envs/mysite/lib/python3.8/site-packages/django/db/models/base.py", line 1343, in _check_fields
    errors.extend(field.check(**kwargs))
  File "/usr/local/Caskroom/miniconda/base/envs/mysite/lib/python3.8/site-packages/django/db/models/fields/__init__.py", line 2361, in check
    *super().check(**kwargs),
  File "/usr/local/Caskroom/miniconda/base/envs/mysite/lib/python3.8/site-packages/django/db/models/fields/__init__.py", line 1724, in check
    *super().check(**kwargs),
  File "/usr/local/Caskroom/miniconda/base/envs/mysite/lib/python3.8/site-packages/django/db/models/fields/__init__.py", line 203, in check
    *self._check_backend_specific_checks(**kwargs),
  File "/usr/local/Caskroom/miniconda/base/envs/mysite/lib/python3.8/site-packages/django/db/models/fields/__init__.py", line 345, in _check_backend_specific_checks
    errors.extend(connections[alias].validation.check_field(self, **kwargs))
  File "/usr/local/Caskroom/miniconda/base/envs/mysite/lib/python3.8/site-packages/django/db/utils.py", line 211, in __getitem__
    self.ensure_defaults(alias)
  File "/usr/local/Caskroom/miniconda/base/envs/mysite/lib/python3.8/site-packages/django/db/utils.py", line 174, in ensure_defaults
    raise ConnectionDoesNotExist("The connection %s doesn't exist" % alias)
django.db.utils.ConnectionDoesNotExist: The connection e doesn't exist

有没有人遇到过类似的问题,可以帮我解决这个问题吗?

所以我终于找到了问题。崩溃是由单个“配置错误”的测试引起的。

我做了一个看起来像这样的测试:

class MyTest(SimpleTestCase):
   databases = 'other'

   def test_something(self):
      pass

我猜该属性databases在Django 3.1之前被忽略了,为了修复它,我不得不写databases = {"other"}

(这也确实需要在settings.py名为other的数据库中进行配置

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

升级到django-rest-framework 3后的UnicodeDecodeError

来自分类Dev

连接到 Django 测试数据库

来自分类Dev

升级到优胜美地10.10后无法连接到Postgresql数据库

来自分类Dev

升级到版本 8.0 后无法连接到 MySQL 数据库

来自分类Dev

升级到grails 3后,grails数据库迁移插件问题

来自分类Dev

升级到OkHttp3后,OkHttpClient引发异常

来自分类Dev

升级到Automapper 3后缺少的方法

来自分类Dev

升级到CodeIgniter 3后,“ SQL语法错误”

来自分类Dev

升级到Swift 3后UITableView坏了

来自分类Dev

升级到Python3-C数据类型

来自分类Dev

升级到ubuntu 16.04后,无法在MySQL上迁移django数据库

来自分类Dev

升级到ubuntu 16.04后,无法在MySQL上迁移django数据库

来自分类Dev

为什么将Django 1.7c2升级到1.7c3会创建新的数据库迁移?

来自分类Dev

将PostgreSQL从8.4升级到9.1 pg后,gem无法连接到数据库

来自分类Dev

升级到Django 1.7。收到错误:无法序列化:<storages.backends.s3boto.S3BotoStorage对象

来自分类Dev

升级到1.8.1后Django管理员中断

来自分类Dev

升级到Django 1.9后的时区问题

来自分类Dev

升级到Django 1.5后Oracle查询变慢

来自分类Dev

升级到TFS 2015 v3后运行单元测试时出错

来自分类Dev

从版本3升级到版本4后,tinyMCE无法再拖放图像

来自分类Dev

从Ubuntu 12.04升级到14.04后,Aptana Studio 3无法正常工作吗?

来自分类Dev

升级到18.04后无法连接到OpenVPN

来自分类Dev

将 RxPy 从 1.x 升级到 3.x 后订阅不起作用

来自分类Dev

从 SDK 版本 1 升级到 3 后,如何修复 getFederationToken 返回 403 未授权错误

来自分类Dev

从3升级到4后,无法使WD TV Media Player连接到Samba / SMB;也许是IPC $问题?

来自分类Dev

无法升级到14.04

来自分类Dev

无法升级到生动

来自分类Dev

无法升级到16.04

来自分类Dev

升级到Rspec 3后,错误“将符号与模块进行比较失败”

Related 相关文章

  1. 1

    升级到django-rest-framework 3后的UnicodeDecodeError

  2. 2

    连接到 Django 测试数据库

  3. 3

    升级到优胜美地10.10后无法连接到Postgresql数据库

  4. 4

    升级到版本 8.0 后无法连接到 MySQL 数据库

  5. 5

    升级到grails 3后,grails数据库迁移插件问题

  6. 6

    升级到OkHttp3后,OkHttpClient引发异常

  7. 7

    升级到Automapper 3后缺少的方法

  8. 8

    升级到CodeIgniter 3后,“ SQL语法错误”

  9. 9

    升级到Swift 3后UITableView坏了

  10. 10

    升级到Python3-C数据类型

  11. 11

    升级到ubuntu 16.04后,无法在MySQL上迁移django数据库

  12. 12

    升级到ubuntu 16.04后,无法在MySQL上迁移django数据库

  13. 13

    为什么将Django 1.7c2升级到1.7c3会创建新的数据库迁移?

  14. 14

    将PostgreSQL从8.4升级到9.1 pg后,gem无法连接到数据库

  15. 15

    升级到Django 1.7。收到错误:无法序列化:<storages.backends.s3boto.S3BotoStorage对象

  16. 16

    升级到1.8.1后Django管理员中断

  17. 17

    升级到Django 1.9后的时区问题

  18. 18

    升级到Django 1.5后Oracle查询变慢

  19. 19

    升级到TFS 2015 v3后运行单元测试时出错

  20. 20

    从版本3升级到版本4后,tinyMCE无法再拖放图像

  21. 21

    从Ubuntu 12.04升级到14.04后,Aptana Studio 3无法正常工作吗?

  22. 22

    升级到18.04后无法连接到OpenVPN

  23. 23

    将 RxPy 从 1.x 升级到 3.x 后订阅不起作用

  24. 24

    从 SDK 版本 1 升级到 3 后,如何修复 getFederationToken 返回 403 未授权错误

  25. 25

    从3升级到4后,无法使WD TV Media Player连接到Samba / SMB;也许是IPC $问题?

  26. 26

    无法升级到14.04

  27. 27

    无法升级到生动

  28. 28

    无法升级到16.04

  29. 29

    升级到Rspec 3后,错误“将符号与模块进行比较失败”

热门标签

归档