zukucode
主にWEB関連の情報を技術メモとして発信しています。

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でマイグレートファイルの作成からやり直すことができます。


関連記事