OperationalError в Django при обновлении модели
Я сталкиваюсь с OperationalError при обновлении модели в существующем проекте Django.
Вот мои установленные приложения в настройках
INSTALLED_APPS = [
"django.contrib.admin",
"django.contrib.auth",
"django.contrib.contenttypes",
"django.contrib.sessions",
"django.contrib.messages",
"django.contrib.staticfiles",
"admin1_app.apps.Admin1AppConfig",
]
Это код в админке
from django.contrib import admin
from admin1_app.models import Product
class Product_admin(admin.ModelAdmin):
list_display=["product_name","product_price","product_qty","product_category"]
admin.site.register(Product,Product_admin)
models.py
from django.db import models
class Product(models.Model):
product_name=models.CharField(max_length=30)
product_price=models.IntegerField()
product_qty=models.IntegerField()
product_category=models.CharField(max_length=35)
def __str__(self):
return self.product_name
Изначально была создана программа только с 3 колонками, т.е. product_name
, product_price
, product_qty
, и все было сделано правильно. Позже я добавил product_category
в этот существующий проект и также выполнил команды makemigrations
и migrate
. Но у меня возникла OperationalError.
OperationalError at /admin/admin1_app/product/
(1054, "Unknown column 'admin1_app_product.product_category' in 'field list'")
Request Method: GET
Request URL: http://127.0.0.1:8080/admin/admin1_app/product/
Django Version: 4.1.2
Exception Type: OperationalError
Exception Value:
(1054, "Unknown column 'admin1_app_product.product_category' in 'field list'")
Exception Location: C:\Users\narendra\anaconda3\lib\site-packages\pymysql\err.py, line 143, in raise_mysql_exception
Raised during: django.contrib.admin.options.changelist_view
Python Executable: C:\Users\narendra\anaconda3\python.exe
Python Version: 3.9.12
Я попробовал использовать команду python manage.py migrate --fake
. Я не знаю, как она работает, но просто скопировал ее из другого решения подобной ошибки в Stack Overflow, однако результата нет.
Я даже попробовал удалить файл 0001_initial.py
в папке migrations, а затем повторил команду makemigrations
, но все равно безрезультатно.
Просто вы можете выполнить миграцию вручную, используя следующую команду:
python3 manage.py makemigrations appname
python3 manage.py sqlmigrate appname 0001
python3 manage.py migrate
И посмотрим, решит ли это