☝️

Django4でmigrationをやり直したい時の手順

2023/03/10に公開

マイグレーションのおさらいとユースケース

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