【问题标题】:MySQL Test DB FailingMySQL 测试数据库失败
【发布时间】:2018-08-20 19:39:27
【问题描述】:

我使用远程 MySQL 数据库(使用mysqlclient)设置了一个 Django 2 应用程序(和 Python 3.6),并具有适当的权限。

当我运行单元测试时,我收到以下错误:django.db.utils.ProgrammingError: (1146, “Table ‘test_<db>.<db>’ doesn’t exist”)

当我手动打开localhost 的网站时,一切正常。

从技术上讲,我可以创建一个本地开发数据库进行测试,但我更希望自动创建测试数据库。

编辑

问题似乎与我的表不受 Django 管理,see here.

【问题讨论】:

    标签: mysql django python-3.x


    【解决方案1】:

    我相信这是重复的。

    Django : Table doesn't exist

    如果表丢失,请确保您拥有正确的迁移文件 (python manage.py makemigrations) 并且已应用它 (python manage.py migrate)。

    【讨论】:

    • 我没有放弃任何迁移,并且我的迁移已正确完成。当我手动打开我的网站时,一切都运行良好。
    • 您尝试在测试中访问的表是否已在迁移文件中定义?测试数据库(不一定)与您在运行单元测试时使用的数据库不同。
    • 表在迁移文件中定义。 Django 不会使用 DB Engine 配置自动创建测试数据库吗?
    【解决方案2】:

    什么对我有用:

    将我的表更改为managed = True

    正在删除迁移文件(__init__.py 除外)。

    python manage.py makemigrations

    python manage.py migrate

    现在我的单元测试正在运行。

    【讨论】:

      猜你喜欢
      • 2012-04-20
      • 2016-09-04
      • 1970-01-01
      • 2015-10-01
      • 1970-01-01
      • 2020-07-14
      • 2016-11-30
      • 1970-01-01
      • 2010-12-26
      相关资源
      最近更新 更多