【问题标题】:How to update Django model fields in MySQL database如何更新 MySQL 数据库中的 Django 模型字段
【发布时间】: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 makemigrationspython manage.py migrate 时,我都会收到一个终止迁移过程的错误。它告诉我我的数据库中的字段preamble 无法识别。是否可以将preamble 更新为introduction

【问题讨论】:

    标签: python django django-models field mysql-python


    【解决方案1】:
    • 确保在进行任何修改之前迁移应用的初始状态。
    • 在您的模型中将 preamble 字段重命名为 introduction,不做其他更改。
    • 运行makemigrations。它应该会询问您是否是重命名。
    • 添加author外键。
    • 运行makemigrations。如果它不可为空,它应该要求您为用户字段提供默认值; 1 应该指代您系统中创建的第一个用户。
    • 运行migrate

    【讨论】:

      【解决方案2】:

      这应该可行:

      1. 删除 SQLite 数据库和迁移目录
      2. 更换型号
      3. 然后运行迁移命令

      【讨论】:

        猜你喜欢
        • 2021-04-06
        • 2021-01-04
        • 2021-03-04
        • 1970-01-01
        • 2013-09-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-04-08
        相关资源
        最近更新 更多