如何解决向其中一个模型添加新字段后,无法迁移到 django 应用程序
所以,这是我之前的类别模型:
class Category(models.Model):
title = models.CharField(max_length=20)
def __str__(self):
return self.title
我运行了 makemigrations 和 migrate 命令,应用程序运行良好
class Category(models.Model):
restricted = models.BooleanField(default=False)
title = models.CharField(max_length=20)
def __str__(self):
return self.title
现在,当我运行 makemigrations 时,出现以下错误:
返回 Database.Cursor.execute(self,query,params) django.db.utils.OperationalError:没有这样的表:events_category
首先它给出了“没有这样的列”错误,但我现在并不真正关心数据,所以我删除了 sqlite 文件和所有迁移并重新开始,这就是出现此错误的时候
该模型已在另一个名为 Post 的模型中设置为外键:
class Post(models.Model):
category = models.ForeignKey(Category,on_delete=models.CASCADE,default=DEFAULT_EXAM_ID)
# and other fields...
添加此字段后,有人可以帮我正确执行迁移吗??
解决方法
删除最新的迁移并重新迁移。迁移文件是您特定应用程序中迁移文件夹中的文件
如果错误仍然存在,请再次清除迁移。现在删除添加的模型。迁移没有错误。然后再次添加模型并重新迁移。
,在创建表之前尝试加载数据时会弹出此错误。您可能有一个 import 语句试图在 migrate
完成之前加载数据。
尝试注释掉加载模型的 import 语句并执行 makemigrations
和 migrate
分辨率:
- 评论新添加的字段并进行假迁移。
- python manage.py makemigrations 应用程序名称
- python manaage.py migrate appname --fake
- 取消注释同一行并进行正常迁移。
- python manage.py makemigrations 应用程序名称
- python manaage.py 迁移应用程序名
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。