【问题标题】:Database creation failing during django testingdjango 测试期间数据库创建失败
【发布时间】:2020-07-14 11:50:02
【问题描述】:

我有一个带有功能数据库的功能 Django 项目。当我尝试在这个项目上运行测试时,我在数据库创建过程中收到了这个错误:

django.db.utils.InternalError: (1553, "Cannot drop index 'One response per question per level': needed in a foreign key constraint")

我在后来删除的其中一个表中有一个 unique_together 约束。

这一行

'One response per question per level'

与该 unique_together 约束相关,并存在于两个迁移文件中 - 第一次是在创建表期间,第二次是在删除期间。

当我运行测试时,它会抛出这个错误并且数据库没有被创建。我该如何解决这个问题?

【问题讨论】:

  • 第二次迁移是否真的适用于您的本地或开发和/或生产环境?
  • @Mehran 我不记得了。那是至少 6 个月前的事了。是否可以从迁移文件中删除此代码并在数据库中进行一些相应的更改以反映这些更改?
  • 我认为这不是一个好主意,django 迁移非常挑剔,如果事情搞砸了,可能需要重新启动完整的数据库。但是,您可以检查是否从数据库中的 django_migrations 表中应用了相关迁移(您需要使用 db 客户端)。检查有问题的迁移是否在该表内。
  • @Mehran 感谢您的提示。是的,迁移已应用。
  • 很抱歉,这似乎是 Django 问题code.djangoproject.com/ticket/24757

标签: django django-testing


【解决方案1】:

这似乎是 Mysql code.djangoproject.com/ticket/24757 中的一个已知问题

我现在正在使用这个workaround

【讨论】:

    猜你喜欢
    • 2012-04-20
    • 2016-03-21
    • 1970-01-01
    • 1970-01-01
    • 2016-05-23
    • 2015-03-04
    • 1970-01-01
    • 2019-01-09
    • 2015-08-27
    相关资源
    最近更新 更多