Djangoのマイグレーションとデータベースのリセット方法

Djangoでモデルの追加や拡張を繰り返していたらエラーが発生し、動かなるというケースに遭遇しました。

開発段階であればとにかく一度リセットしてやり直すことができます。DBの情報も全て吹っ飛ばしてOKなケースについて、方法をメモします。

データベースの情報も全て吹っ飛ばす

1. プロジェクト内にある全てのマイグレーションファイルを削除

Djangoのプロジェクト、アプリケーションにある migrations ディレクトリ、その中にある __init__.py 以外のファイルを削除します。

LinuxとかMacなら次のコマンドで一掃できます。

find . -path "*/migrations/*.py" -not -name "__init__.py" -delete
find . -path "*/migrations/*.pyc"  -delete

2. データベースを削除

db.sqlite3 があるならそれを削除。PostgreSQLなど他のDBを使っている場合はデータベースごとDROPします。

3. マイグレーションファイルの作成とデータベースの生成

python manage.py makemigrations
python manage.py migrate

まとめ

マイグレーション・データベースのリセット方法をまとめました。開発段階ならとりあえずこれでOKかと思います。本番環境での実行はダメ!絶対!