我正在尝试将 django-synchro 升级到 django 2.2。我已经将项目升级到 django 2.1 但我现在遇到了 ContentType 对象的问题
django 2.1 的升级版本可以在这里找到
(python runtests.py 有效,所有测试通过)
使用 django 2.2.3 我有错误
django.db.utils.OperationalError:没有这样的表:django_content_type
似乎在初始化时,迁移是在默认数据库上完成的,其余的是在测试数据库(在内存中)上完成的。所以 ContentType 在其余代码中看不到。models.py
读取
时发生错误(content_type = models.ForeignKey(ContentType, on_delete=models.CASCADE))
任何想法将不胜感激......
我查看了Django 2.2 发行说明
2.2 中有两个向后不兼容的更改可能会导致错误:
TransactionTestCase 序列化数据加载:在数据库刷新后,测试结束时将初始数据迁移加载到 TransactionTestCase 中。在旧版本中,此数据在测试开始时加载,但这会阻止 test --keepdb 选项正常工作(整个测试套件结束时数据库为空)。除非您自定义了 TransactionTestCase 的内部结构,否则此更改不会对您的测试产生影响。
测试:现在在 SQLite 3.20+ 上的每个 TestCase 测试结束时检查可延迟数据库约束,就像在支持可延迟约束的其他后端一样。这些检查不适用于旧版本的 SQLite,因为它们需要在那里进行昂贵的表内省。