Django 1.7の初期移行から移行するにはどうすればよいですか?


117

いくつかのモデルを使用して新しいアプリを作成しましたが、一部のモデルが十分に検討されていないことに気付きました。私はコードをコミットしていなかったので、賢明なことは、データベースを最後の良好な状態に移行し、より良いモデルで移行をやり直すことです。この場合、最後の良好な状態は、新しいアプリが存在しないデータベースです。

Django 1.7で最初の移行から移行するにはどうすればよいですか?

South1が行うことができます:

python manage.py migrate <app> zero

<app>移行履歴から消去され、のすべてのテーブルが削除されます<app>

Django 1.7の移行でこれを行う方法は?

回答:


197

Django 1.7以降でも同じことができます:

python manage.py migrate <app> zero

これにより<app>、移行履歴がクリアされ、すべてのテーブルが削除されます<app>

詳細については、django docsを参照してください。


7
これはどこかに文書化されていますか?移行に関するdjangoのドキュメントに深刻な欠けている...
rnevius

2
ドクジャンゴ-adminとmanage.pyドキュメントページで見つけることができます:docs.djangoproject.com/en/1.7/ref/django-admin/...
n__o

@結構です。回答を更新しました。
ChillarAnand、2015

1
IntegrityError:NOT NULL制約はどのように処理しますか?
wasabigeek 2015

2
Django 1.9で試してみたところ、問題なく動作しました。ありがとう
ダリオ

9

バージョン番号を使用することもできます。

python manage.py migrate <app> 0002

ソース:https : //docs.djangoproject.com/en/1.7/ref/django-admin/#django-admin-migrate


5
質問は、最初の移行からの移行に関するものであり、使用0000しても機能しません
guival

私は質問を誤解している可能性があります(特によく書かれたIMHOではありませんが)。なぜDBを削除しないのですか?まあ
jsh

2
1つのテーブルのDB全体を削除するのは少々やり過ぎです
guival
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.