南django表已经存在

时间:2011-02-10 14:12:36

标签: python django-models data-migration django-south

我遇到了与django - "manage.py test" fails "table already exists"

相同的问题

模式迁移/迁移工作正常(虽然确实有一些问题需要我 - 但是所有随后的迁移都在南方工作)。但是当我进行单元测试时,我得到了:

(1050, "Table '{tablename}' already exists")

我只是好奇我怎么能绕过这个,以及为什么会这样。在上面提到的问题中给出的唯一答案是,南方可以被排除在单元测试之外,如果我这样做,是否意味着我不能对南方管理的表进行单元测试?

非常感谢解释:)

亚当

1 个答案:

答案 0 :(得分:8)

不,这并不意味着。不要忘记Django已经知道如果你从头开始创建它们的表格现在 - 它只是使用模型定义。 South非常有用,因为它允许您在更改模型时轻松转换表结构,但是当您运行测试时,您并不关心:您只需要在当前版本的表上运行测试。

所以是的,通过SOUTH_TESTS_MIGRATE = False运行测试时禁用South,Django将自动为您创建表。