如何更新 MySQL 数据库中的 Django 模型字段
Posted
技术标签:
【中文标题】如何更新 MySQL 数据库中的 Django 模型字段【英文标题】:How to update Django model fields in MySQL database 【发布时间】:2021-04-06 18:18:35 【问题描述】:我在 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)
我想添加另一个名为 author author=models.ForeignKey(User, on_delete=models.CASCADE
的字段
另外,我想将其中一个字段的名称从preamble
更改为introduction
每当我运行命令python manage.py makemigrations
和python manage.py migrate
时,我都会收到一个终止迁移过程的错误。它告诉我我的数据库中的字段preamble
无法识别。是否可以将preamble
更新为introduction
?
【问题讨论】:
【参考方案1】: 确保在进行任何修改之前迁移应用的初始状态。 在您的模型中将preamble
字段重命名为 introduction
,不做其他更改。
运行makemigrations
。它应该会询问您是否是重命名。
添加author
外键。
运行makemigrations
。如果它不可为空,它应该要求您为用户字段提供默认值; 1
应该指代您系统中创建的第一个用户。
运行migrate
。
【讨论】:
【参考方案2】:这应该可行:
-
删除 SQLite 数据库和迁移目录
更换型号
然后运行迁移命令
【讨论】:
以上是关于如何更新 MySQL 数据库中的 Django 模型字段的主要内容,如果未能解决你的问题,请参考以下文章
Django 2021年最新版教程16pycharm model模型修改之后如何同步更新到mysql数据库