使用Nose运行单元测试时出现南错误

Sim*_*mon 6 migration django nose django-south

让我的django测试正常运行我遇到了一些困难; 我正在使用nose,并且在应用迁移时我开始收到错误,从表1到表2的外键关系失败并出现错误:

django.db.utils.DatabaseError: relation "table2_column" does not exist
Run Code Online (Sandbox Code Playgroud)

看一下迁移的应用方式,我很清楚table1是在应用外键关系之前没有创建的,所以我试图找出如何强制依赖,并找到以下文章: http:// south.aeracode.org/docs/dependencies.html

然后我补充说:

depends_on = (
    ("app2", "0001_inital"),
)
Run Code Online (Sandbox Code Playgroud)

到我的app1/0001_initial.py文件.

不幸的是现在我收到以下错误:

south.exceptions.DependsOnUnknownMigrationMigration 'app1:0001_initial' depends on unknown migration 'app2:0001_inital'.
Run Code Online (Sandbox Code Playgroud)

关于如何解决这个问题的任何想法?

gla*_*xly 19

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

SOUTH_TESTS_MIGRATE = False
Run Code Online (Sandbox Code Playgroud)


小智 5

你的迁移名称中有一个拼写错误.它应该是:

depends_on = (
    ("app2", "0001_initial"),
)
Run Code Online (Sandbox Code Playgroud)

这个依赖系统对我有用,在你在这里列出完全相同的问题之后,然后找到依赖系统South的文档.