【发布时间】:2011-06-20 10:08:51
【问题描述】:
我是 django 世界的新手。运行一些教程应用程序,并且在运行 python manage.py test 时我遇到了一个失败,说该表已经存在。我不确定发生了什么。我也在向南跑,迁移架构时没有错误。
非常感谢任何见解。
TIA 乔伊
【问题讨论】:
-
是的!就是这样,我犯了一些错误,使迁移与数据库不同步。干净的安装修复了它。
我是 django 世界的新手。运行一些教程应用程序,并且在运行 python manage.py test 时我遇到了一个失败,说该表已经存在。我不确定发生了什么。我也在向南跑,迁移架构时没有错误。
非常感谢任何见解。
TIA 乔伊
【问题讨论】:
这也发生在我的遗留代码上,但出于另一个原因。
我有两个模型,其中 db_table 引用同一个 db 表。 我知道这很愚蠢,但这不是我的错)
而且我从来没有在互联网上找到任何可以帮助我的东西。 详细程度设置为 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'
【讨论】:
managed=False。
当鼻子--cover-package=userdata,incorrectname
时也会发生这种情况
其中一个包的名称不正确
【讨论】:
如果你用鼻子测试:
DST_RUN_SOUTH_MIGRATIONS = 假
【讨论】:
这可能是您向南迁移的一个错误。您在真实数据库上看不到问题,因为迁移已执行(可能使用 --fake 选项)
您可以尝试从 scracth 重新创建数据库,看看它是否有效。
您还可以通过在 settings.py 中添加 SOUTH_TESTS_MIGRATE = False 来禁用 South 进行单元测试。使用此选项,将执行常规同步数据库来创建测试数据库。它还将加快测试过程。
希望对你有帮助
【讨论】: