由于南方模式迁移的顺序,我的 django 测试不起作用?



当我运行

manage.py test myapp

错误结束

Creating test database for alias 'default'...
! Error found during real run of migration! Aborting.
_mysql_exceptions.OperationalError: (1005, "Can't create table 
   'test_dom.#sql-49b_1a1' (errno: 150)")

我使用south来处理模式迁移,django 1.3和mysql。

注意,当我单独配置项目时,我按顺序执行以下操作

  • syncdb
  • 迁移app1
  • 迁移app2

最后一次迁移适用于所有其他应用程序。如果我不手动迁移前两个应用程序;南方也会落在我身上。

如何解决这个问题?

您知道可以在南迁移中定义依赖关系吗?

http://south.aeracode.org/docs/dependencies.html

如果你定义了依赖项,一个"manage.py migrate"就可以了。

为什么要在syncdb之后迁移?在新创建的db之后,您肯定没有迁移要做吧?

还要注意南边的设置:

SKIP_SOUTH_TESTS = TrueSOUTH_TESTS_MIGRATE = False

最新更新