web-dev-qa-db-ja.com

南-特定の移行を強制する方法は?

新しいテーブルを作成する移行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が作成することになっているため、存在しません。なぜこのエラーが発生するのですか?

21
egidra

移行0006を前方に偽造したようですが、後方にも偽造する必要があります。

manage.py migrate --fake yourapp 0005

これにより、現在の移行が0005に設定されます。

どうやら、あなたは0002に戻って移行したいと思っています:

manage.py migrate --fake yourapp 0002

そして、0003からやり直します。

manage.py migrate yourapp
66
jpic