我正在将项目从Django 1.10.8升级到1.11,我的单元测试中突然出现了奇怪的错误。
我使用了轻微的黑客来更新现有的多对多关系以使用自定义'通过'带有额外订单的桌子'领域。一切都在1.10中运行良好但现在在1.11中失败了
django.db.utils.ProgrammingError: column api_session_pollgroups.pollgroup_id does not exist
我的模型代码如下所示:
class SessionPollGroup(models.Model):
session = models.ForeignKey('api.Session')
pollgroup = models.ForeignKey('api.PollGroup')
order = models.PositiveSmallIntegerField(default=0)
class Meta:
db_table = 'api_session_pollgroups'
ordering = ('order',)
表' api_session_pollgroups'当最初的多对多关系被制作并且我劫持了它时,它就已经存在了。添加额外的订单字段。
会话模型的关系看起来像这样
pollgroups = models.ManyToManyField('api.PollGroup',
related_name='sessions',
through=SessionPollGroup)
任何人都知道为什么在django 1.11而不是1.10中无法生成或找到正确的数据库模式?
注意:这似乎只出现在单元测试期间,当我使用常规迁移创建新数据库时,表似乎在我的开发db(postgres)中正确创建,但不在单元测试db(sqlite)中创建
谢谢!
编辑:扫描了更改日志,无法看到有关此内容的任何信息。我能想到的最好的事情是与表空间有关,但我很难知道到底是什么。