Django2.2.5(Python3.7.7)を使って、簡単なWebアプリケーションを作成しています。データベースはMySQL5.7.27を使っております。
models.pyに以下の二行を追加し、
Python
1magazine = models.CharField(verbose_name="雑誌名", max_length=511, blank=True) 2volume = models.CharField(verbose_name="巻・号", max_length=63, blank=True)
python3 manage.py makemigrations
を実行したところ、
_mysql.connection.query(self, query) MySQLdb._exceptions.OperationalError: (1054, "Unknown column 'reference.magazine' in 'field list'")
というエラーが出てしまいます。reference.magazine
は今から追加してほしいフィールドなので、ないのは当たり前なのですが、今まではmodels.pyに必要なカラムを追加してmakemigrationsすればカラム追加ができていたため、なぜ今回はエラーになってしまうかがわかりません。manage.py自体のエラーらしく、python3 manage.py runserver
なども同じエラーで実行できません。
試したことは、
- migrationsディレクトリ内のファイルを、
__init__.py
以外全て消して、python3 manage.py makemigrations
のやり直し → 状態変わらず - 追加した2行を消して、
python3 manage.py makemigrations
→ 問題なく実行可能 - 2行追加ではなく、試しに他のフィールドのmax_lengthを変更して、migrate → 問題なく実行可能
という感じです。
初期データなどをかなり入力したので、DatabaseをDropしてやり直すのはできれば避けたいと思い、質問させていただく次第です。もし原因にお心当たりがありましたら、ご教示をよろしくお願いいたします。
[追記]
2行の追加をやめて、python3 manage.py showmigrations
した場合の出力を追記します。
admin [X] 0001_initial [X] 0002_logentry_remove_auto_add [X] 0003_logentry_add_action_flag_choices auth [X] 0001_initial [X] 0002_alter_permission_name_max_length [X] 0003_alter_user_email_max_length [X] 0004_alter_user_username_opts [X] 0005_alter_user_last_login_null [X] 0006_require_contenttypes_0002 [X] 0007_alter_validators_add_error_messages [X] 0008_alter_user_username_max_length [X] 0009_alter_user_last_name_max_length [X] 0010_alter_group_name_max_length [X] 0011_update_proxy_permissions contenttypes [X] 0001_initial [X] 0002_remove_content_type_name examples [X] 0001_initial [X] 0002_auto_20200814_1832 sessions [X] 0001_initial
回答1件
あなたの回答
tips
プレビュー