django - "manage.py test" 失败 "表已存在

8 投票
5 回答
5675 浏览
提问于 2025-04-16 11:08

我刚接触django这个框架。现在在运行一些教程里的应用程序,当我执行命令python manage.py test时,出现了一个错误,提示说表已经存在。我不太明白这是怎么回事。我还在使用south这个工具,迁移数据库结构的时候没有出现任何错误。

如果有人能给点建议,我会非常感激。

谢谢!
乔伊

5 个回答

0

如果你在用nose进行测试的话:

DST_RUN_SOUTH_MIGRATIONS = False

3

我也遇到过类似的情况,不过原因不太一样。

我有两个模型,它们都指向同一个数据库表。虽然我知道这样做很傻,但这不是我的错哦)

我在网上找了很久也没找到任何能帮我的东西。最后我通过把详细程度设置为3(manage.py test -v 3)才解决了问题。

希望这能帮到其他人。

class Bla1(Model):
    some_column = ...
    class Meta:
        db_table = 'some_table'

class Bla2(Model):
    some_column = ...
    class Meta:
        db_table = 'some_table'
15

可能是你某个南方迁移(south migration)出错了。你在真实数据库中看不到问题,因为这个迁移已经执行过了(可能是用--fake选项执行的)。

你可以尝试从头开始重新创建数据库,看看这样是否能解决问题。

你还可以通过在settings.py文件中添加 SOUTH_TESTS_MIGRATE = False 来禁用南方迁移,这样在进行单元测试时会使用普通的syncdb来创建测试数据库。这也会加快测试的速度。

希望这些能帮到你。

撰写回答