【Django】1504エラーの対処方法

eyecatch-1504-error

左手首を痛めているmizkyです。

DjangoでMigrateの際に発生した以下のエラーが発生しました。

(1054, "Unknown column 'name' in 'django_content_type'")

今回はこちらのエラーの対処方法を備忘録として書きます。

エラー発生までの経緯

Djangoで使用していたDB(データベース)の移行を、以下の手順で行いました。

  1. 旧DBから移行に必要なデータをdump(ダンプ)
  2. 新DBにダンプデータを取り込み
  3. マイグレート処理

今回はこの手順3で上記の1504エラーが発生しました。

対処方法

以下の手順でエラー対処しました。

1. DBからマイグレーション情報を削除

Python manage.py dbshell

でDBにアクセスし、

Delete from djnago_migrations

で、保存しているdjangoのマイグレーション情報を削除しました。

2. 全てのアプリケーションのマイグレーションファイルを削除

rm -rf <app>/migrations

上記のコマンドで自身が作成した全てのアプリケーションのマイグレーションファイルを削除しました。

3. フェイクマイグレートの実行

この段階でDBとマイグレーションの間に不整合が発生しているため、

python manage.py migrate --fake

で、一度フェイクマイグレートを行いました。

4. マイグレーションファイルの作成

手順2.でマイグレーションファイルを削除したので

python manage.py makemigrations

で、マイグレーションファイルを再作成しました。

5. 全てのマイグレーションファイルを適用済みにする

手順4で作成されたプロジェクト内のマイグレーションファイルの一部は未適用となっているため

python manage.py migrate --fake-initial

で、適用済みにしました。

以上でエラー対処完了です。

コメント

タイトルとURLをコピーしました