【Django】Migrationsのリセット方法
データベース内のデータを残したまま、DjangoのMigrationsをリセットする方法
タイトル
リセット前の確認
まずは既存のmodelsがデータベースに適合しているか確認を実施。
1 2 3 |
python manage.py makemigrations |
コマンド実行後にエラーがなければOK。
Migrations処理が残ってないかも確認。
「No changes detected」が表示されていることを確認。
Migrations履歴を確認
Migrationsの履歴を確認。
1 2 3 |
python manage.py showmigrations |
Migrations履歴を削除
Migrationsの履歴を削除するために下記コマンドを実行
1 2 3 |
python manage.py migrate --fake XXX zero |
XXXの部分はアプリ名を指定
Migrations履歴が削除されたか確認
Migrationsの履歴が削除されているか履歴を確認。
1 2 3 |
python manage.py showmigrations |
Migrationsの履歴が削除された項目の「[X]」が「[ ]」に変更になっていることを確認。
Migrationsファイルを削除
該当アプリのmigrationsディレクトリ内にある「__init__.py」以外のファイルを削除
Migrationsファイルを再作成
Migrationsファイルを削除したので、新たにMigrationsファイルを作成します。
1 2 3 |
python manage.py makemigrations |
migrateを実行
新たに作ったmigrationsファイルをmigrateを実行して反映するが、既にデータベースのテーブルが存在するので、fakeコマンドで実行
1 2 3 |
python manage.py migrate --fake-initial |
ディスカッション
コメント一覧
まだ、コメントがありません