DjangoでmigrateしてるのにDBに反映されない時の対処法【Djangoアウトプット】

この記事は 136 で読めます。


makemigrationsしてmigrateしても反映されないときは、一旦設定情報をリセットして再度migrateするとうまくいくときがあります。

migrationの設定情報をリセットする

まずは対象のアプリケーションをリセットします。

その後、showmigrationsをすると

以下のようにチェックが外れると思います。

ファイルを削除する

対象のアプリケーションフォルダ内のmigrationsフォルダの「__init__.py」ファイル以外のファイルを削除します。
※__pycache__フォルダも含む

その後は、通常通り「makemigratios」→「migrate」コマンドを叩けば
DBに反映されると思います。

上記の手順を行っても、エラーがでてうまく反映されない場合は
モデルに追加したフィールドに「null=True」を設定してみるとうまくいくかもしれません。

僕の場合

・モデルにフィールドを追加
・makemigrationsする
・ターミナルでデフォルトの値をどうするか決めてくれと言われる
・無視してmigrationsフォルダのファイルを削除する

・これ以降、何をしてもmigrateで反映してくれなくなってしまう。

というパターンが多く、
おそらくモデルに新しいフィールドを追加したときにデフォルト値を決めるか、「null=True」を設定すれば、こういう事態にはならないのかなと予想してます。

詳しい人からしたら、何を言っているんだという事案なんでしょうが…(笑)

コメントを残す