☝️
Django4でmigrationをやり直したい時の手順
マイグレーションのおさらいとユースケース
migrate実行の流れとしては下記の2つの手順を踏みます。
マイグレーションファイルを生成
python manage.py makemigrate
マイグレーションの実行
python manage.py migrate
たったこれだけで、DBをCREATEしてくれて非常に助かるのですが、
ここで、「あっ、項目(カラム)が1つ足りなかった。。。追加しよう。」ということありますよね?
models.pyファイルに追記して再度migrateでは下記のようにエラーになってしまいます。
Your models in app(s): '<アプリ名>' have changes that are not yet reflected in a migration, and so won't be applied.
Run 'manage.py makemigrations' to make new migrations, and then re-run 'manage.py migrate' to apply them.
そこで、本記事ではmigrationをやり直す手順を3段階で説明します。
migrationをやり直す手順
手順1 DBを削除
コマンドラインから、sqlを実行できる状態にします。
今回は、sqlite3を利用した手順ですので適宜環境に合わせてください。
sqllite3を開く
sqlite3 db.sqlite3
一度作成したテーブルを削除する
drop table <テーブル名>;
手順2 マイグレート履歴を削除する
python manage.py migrate --fake <アプリケーション名> zero
手順3 再度、マイグレートする
python manage.py migrate
以上。
Discussion