让django测试运行正常我遇到了一些困难;我正在使用鼻子,并且在应用迁移时我开始收到错误,表1中与表2的外键关系失败并显示错误:
django.db.utils.DatabaseError: relation "table2_column" does not exist
查看迁移的应用方式,我很清楚在应用外键关系之前没有创建table1,所以我试图弄清楚如何强制依赖,并找到以下文章: http://south.aeracode.org/docs/dependencies.html
然后我补充道:
depends_on = (
("app2", "0001_inital"),
)
到我的app1 / 0001_initial.py文件。
不幸的是现在我收到以下错误:
south.exceptions.DependsOnUnknownMigrationMigration 'app1:0001_initial' depends on unknown migration 'app2:0001_inital'.
关于如何解决这个问题的任何想法?
答案 0 :(得分:19)
我不确定这是否可以解决您的问题,但您可以添加设置以在运行测试时使用syncdb而不是迁移。将以下行添加到settings.py
SOUTH_TESTS_MIGRATE = False
答案 1 :(得分:5)
您的迁移名称中有一个拼写错误。它应该是:
depends_on = (
("app2", "0001_initial"),
)
这个依赖系统对我有用,在你在这里列出完全相同的问题后,然后找到依赖系统South的文档。
答案 2 :(得分:0)
如果在导入目标模块期间出现错误,也会抛出此错误:如果您已经手动构建了迁移,并且您确定文件名与 depends_on 匹配或 needed_by ,请检查引用的文件是否有错误。
此外,将SOUTH_TESTS_MIGRATE设置为False不会解决问题。这只是意味着在您尝试使用迁移之前,您不会看到问题。
http://south.readthedocs.org/en/latest/settings.html
(如果你想加快你的单元测试,这仍然很有用。)