5

我遇到了与以下相同的问题:django - “manage.py test”失败“表已经存在”

schemamigration / migration 工作正常(虽然确实有一些问题需要我 --fake,但所有后续的南迁移工作)。但是当我运行单元测试时,我得到:

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

我只是好奇如何解决这个问题,以及为什么会发生这种情况。上面链接的问题中给出的唯一答案是可以将南方排除在单元测试之外,如果我这样做是否意味着我不能对南方管理的表进行单元测试?

非常感谢的解释:)

亚当

4

1 回答 1

8

不,不是那个意思。不要忘记,如果您现在从头开始创建表,Django 已经知道您的表应该是什么样子——它只是使用模型定义。South 很有用,因为它允许您在更改模型时轻松转换表结构,但是当您运行测试时,您并不关心这一点:您只想在当前版本的表上运行测试。

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

于 2011-02-10T14:26:31.850 回答