この記事では、Djangoを利用するプロジェクトの中で、migrateを行った際に起こるエラーの対応方法について紹介します。
◆動作検証環境
・ローカル環境:mac Catalina
・python:3.7.5
・Django:3.1.2
・python:3.7.5
・Django:3.1.2
目次
スポンサードリンク
django.core.exceptions.FieldDoesNotExistの対応方法
migrateを実行した後に以下のようなエラーがでる場合があります。
1 2 3 | django.core.exceptions.FieldDoesNotExist: SampleTable has no field named 'title' |
このような場合は、対応しているmigrationのファイルを編集します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | from django.db import migrations class Migration(migrations.Migration): dependencies = [ ('app', '0002_auto_20200119_1831'), ] # operations = [ # migrations.RemoveField( # model_name='SampleTable', # name='title', # ), # ] |
ファイル中で、見つけられないと警告されているフィールド部分をコメントアウトします。
django.db.utils.ProgrammingError: relation “app_sampletable” already existsの対応方法
こちらのエラーは、migrationファイル内ではテーブル等を作成する内容となっているが、既に対象のデータベース内に同じテーブル等が作成されている場合に発生します。
このような場合は、--fakeオプションを利用して対応します。
1 2 3 | python manage.py migrate --fake |
以下のような表示となり、作成済み処理があるファイルが対応されます。
1 2 3 4 5 | Applying main.0005_auto_20200401_1707... FAKED Applying main.0006_auto_20200405_0038... FAKED Applying main.0007_auto_20200411_1425... FAKED |
以上、Djangoを利用するプロジェクトの中で、migrateを行った際に起こるエラーの対応方法について紹介しました。