25

我有一个迁移 003,它创建了一个新表,但由于某种原因,South 在执行该迁移后没有创建一个新表:我正在执行以下命令:

[kelp@web187 goals]$ python2.7 manage.py migrate main 0003_auto__add_nudge
Running migrations for main:
 - Migrating backwards to just after 0003_auto__add_nudge.
 < main:0006_auto__add_field_nudge_status

但我收到以下错误:

django.db.utils.DatabaseError: relation "main_nudge" does not exist

它不存在,因为迁移 003 应该创建它。为什么我会收到此错误?

4

1 回答 1

71

看起来你已经伪造了 migration 0006 向前,你也应该向后伪造它:

manage.py migrate --fake yourapp 0005

这会将当前迁移设置为 0005。

显然,您想迁移回 0002:

manage.py migrate --fake yourapp 0002

然后从 0003 重新开始:

manage.py migrate yourapp
于 2012-09-11T08:04:10.430 回答