Python Django reset#u序列不';无法在LiveServerTestCase中工作

Python Django reset#u序列不';无法在LiveServerTestCase中工作,python,django,unit-testing,Python,Django,Unit Testing,我已经将django从1.6更新到1.8.3。我在单元测试的测试设置方法中创建测试模型,类似于这样 class MyTestCase(LiveServerTestCase): reset_sequences = True def setUp(self): self.my_model = models.MyModel.objects.create(name='test) 我在应用程序中有代码,它依赖于主键==1。我注意到,序列实际上并没有重置。在下一次测试中,pk

我已经将django从1.6更新到1.8.3。我在单元测试的测试设置方法中创建测试模型,类似于这样

class MyTestCase(LiveServerTestCase):
    reset_sequences = True
    def setUp(self):
        self.my_model = models.MyModel.objects.create(name='test)
我在应用程序中有代码,它依赖于主键==1。我注意到,序列实际上并没有重置。在下一次测试中,pk大于上一次测试中的pk

这在django 1.6中可以正常工作,但在迁移到1.8之后会出现问题

我应该手动重置序列吗


另外,我知道fixture,但我的模型更复杂,对我来说,在代码中创建模型更容易。

问题出在sqlite3中。测试已使用其他设置文件运行,其中sqlite3配置为数据库

django检查数据库是否支持序列:

# django.test.testcases.py:809
def _reset_sequences(self, db_name):
    conn = connections[db_name]
    if conn.features.supports_sequence_reset:
        sql_list = conn.ops.sequence_reset_by_name_sql(
            no_style(), conn.introspection.sequence_list())
    # ....

所以我已经将测试设置切换到postgresql,现在它可以正常工作了

您使用的是拆卸方法吗?通常它用于“清理”创建到setUp方法中的内容。不,因为据我所知,django将数据库回滚到post_迁移状态。在测试中,我没有看到任何来自其他测试的数据,只有单个模型,但是随着pk的增加