首页 > 解决方案 > Django 单元测试要求删除 MariaDB DB:(1007,“无法创建数据库'test_x_django';数据库存在”)

问题描述

我有 django 单元测试,为测试创建了一个 MariaDB 数据库。我正在使用设置文件中的用户名和密码访问数据库并不断收到此错误: Type 'yes' if you would like to try deleting the test database 'test_x_django', or 'no' to cancel: Got an error creating the test database: (1007, "Can't create database 'test_x_django'; database exists")

这让我每次运行单元测试时都输入“是” - 特别是在中间停止测试之后(不允许 django 删除数据库?)。

我尝试了很多解决方案,包括:尝试使用 root 用户,赋予 django_user 对 'test_x_django' db 的所有权限,赋予 django_user 对 createdb 的权限。在这种情况下,我还没有在线找到 MariaDB 的解决方案。

我的settings.py文件中的配置是:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'x_django',
        'USER': 'django_user',
        'PASSWORD': 'xxxx',
        'HOST': 127.0.0.1,
        'PORT': '3306'
    }
}

有没有办法让 django 停止提问,并自动删除数据库?

标签: sqldjangounit-testingmariadb

解决方案


只需通过 --keepdb 选项。python manage.py test --keepdb如果你想保留它。如果您想销毁它,请通过 --noinput python manage.py test --noinput

请参阅文档https://docs.djangoproject.com/en/2.2/topics/testing/overview/#the-test-database


推荐阅读