Django 使用Nose运行单元测试时,South出错

Django 使用Nose运行单元测试时,South出错,django,migration,nose,django-south,Django,Migration,Nose,Django South,我很难让django测试正常运行;我正在使用nose,在应用迁移时,我开始收到一个错误,即从表1到表2的外键关系失败,错误如下: django.db.utils.DatabaseError: relation "table2_column" does not exist 通过查看迁移的应用方式,我很清楚table1不是在应用外键关系之前创建的,因此我试图找出如何强制依赖关系,并找到以下文章: 我接着补充说: depends_on = ( ("app2", "0001_inital")

我很难让django测试正常运行;我正在使用nose,在应用迁移时,我开始收到一个错误,即从表1到表2的外键关系失败,错误如下:

django.db.utils.DatabaseError: relation "table2_column" does not exist
通过查看迁移的应用方式,我很清楚table1不是在应用外键关系之前创建的,因此我试图找出如何强制依赖关系,并找到以下文章:

我接着补充说:

depends_on = (
    ("app2", "0001_inital"),
)
到我的app1/0001_initial.py文件

不幸的是,现在我遇到了以下错误:

south.exceptions.DependsOnUnknownMigrationMigration 'app1:0001_initial' depends on unknown migration 'app2:0001_inital'.

关于如何解决这个问题有什么想法吗?

我不确定这是否能解决您的问题,但您可以添加一个设置,在运行测试时使用syncdb而不是迁移。将以下行添加到settings.py

SOUTH_TESTS_MIGRATE = False

它所依赖的迁移名称中有一个输入错误。应该是:

depends_on = (
    ("app2", "0001_initial"),
)

这个依赖系统对我来说很有效,在我遇到了与你在这里列出的问题完全相同的问题之后,然后查找依赖关系系统South的文档。

如果在导入目标模块过程中出现错误,也会引发此错误:如果您有手工构建的迁移,并且您确定文件名与您的依赖的需要的匹配,请检查引用的文件是否存在错误

此外,将SOUTH\u TESTS\u MIGRATE设置为False也不能解决问题。这只是意味着,在尝试使用迁移之前,您不会看到问题


(如果你想加速单元测试,这仍然很有用。)

不确定我是否能帮上什么忙,但现在我发现了nose!我已经知道了south,但由于我不知道nose,所以我推出了自己的测试框架。对于南方错误,文件是否存在于/app2/migrations/0001_initial.py?是的,迁移确实存在。谢谢!这帮了大忙。我很想选择这个作为答案,但我真的很想知道我是否可以让迁移工作。事实上,我没有测试过这个,因为我后来解决了这个问题,但我肯定有一个打字错误!