当我运行
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