我在Django中创建了一个帖子模型,并试图更新数据库(MySQL(中的一个字段。我有以下代码块:型号.py
class Post (models.Model):
title = models.CharField()
preamble = models.CharField()
body = models.TextField ()
createdAt = models.DateTimeField(auto_now_add=True, blank=True)
我想添加另一个名为authorauthor=models.ForeignKey(User, on_delete=models.CASCADE
的字段此外,我想将其中一个字段的名称从preamble
更改为introduction
每当我运行命令python manage.py makemigrations
和python manage.py migrate
时,我都会收到一个终止迁移过程的错误。它告诉我数据库中的字段preamble
没有被识别。是否可以将preamble
更新为introduction
?
- 在进行任何修改之前,请确保您已经迁移了应用程序的初始状态
- 在模型中将
preamble
字段重命名为introduction
,不做其他更改 - 运行
makemigrations
。它应该问你这是否是一个重命名 - 添加
author
外键 - 运行
makemigrations
。如果用户字段不可为null,它应该要求您为其提供默认值;1
应该是指在您的系统中创建的第一个用户 - 运行
migrate
这应该是工作:
- 删除SQLite数据库和迁移目录
- 更改模型
- 然后运行migrate命令