Django マイグレーションの状態を初期化・リセットする
Django
のマイグレーションの状態を初期化・リセットする方法を紹介します。
app
という名前でアプリケーションを作成し、Django マイグレーションの基本的な使い方で紹介した方法で、model.py
に定義したテーブルの定義情報をデータベースに登録してある状態とします。
マイグレーションの状態を確認
まずは以下のコマンドでマイグレーションの状態を確認します。
$ python manage.py showmigrations app
app
[x] 0001_initial
- [ ]はマイグレートファイルを作成してDBには反映していない状態
- [x]はマイグレートファイルを実行してDBに反映した状態
ロールバック
「マイグレートファイルを実行してDBに反映した状態」を「マイグレートファイルを作成してDBには反映していない状態」に戻す(ロールバック)するには、以下のコマンドを実行します。
$ python manage.py migrate api zero
再度マイグレーションの状態を確認すると、以下のように、ロールバックされていることが確認できます。
$ python manage.py showmigrations app
app
[ ] 0001_initial
migrationフォルダの__init__.py
以外のファイル(0001_initial.py
)を削除すれば、マイグレーションの状態を初期化は完了です。
リセットしたあとはmakemigrations
でマイグレートファイルの作成からやり直すことができます。