gpt4 book ai didi

Django - 不会让我向模型添加新字段,因为 1054, "Unknown column ' 字段列表'")

转载 作者:行者123 更新时间:2023-12-03 19:33:31 24 4
gpt4 key购买 nike

我试图按照简单的规则简单地向我的数据库中的模型添加一个 bool 字段:

- add field to model
- python manage.py makemigrations app
- python manage.py migrate app

除了 99% 的时间外,其他所有时间都有效。因此,在第二步 (makemigrations) 中,由于我的模型中新添加的字段迫不及待,我收到一个错误:
django.db.utils.OperationalError: (1054, "Unknown column 'model.field' in 'field list'")

优秀。它不允许我通过添加新字段来进行迁移..... 因为它找不到我要新添加的字段...非常有意义!

无论如何,我已经删除了所有迁移,删除了我的新字段,再次进行迁移,迁移......一切都很好 - 所以现在我只有1个迁移文件(0001)......

按照与上述相同的步骤...错误

我在这里错过了一些可笑的东西吗?我的意思是,向模型添加一个字段非常简单,我已经完成了 1000 次。为什么 Django 这么取笑我

编辑: 答案:

好的,我已经做到了。

删除迁移文件,截断迁移表并使用 0001_initial.py 迁移后,我创建了一个空迁移文件(python manage.py makemigrations --empty app)并手动添加了该字段......然后我迁移并且它工作!老实说,对此感到困惑,但至少已经做出了改变:
  • 删除所有迁移文件
  • 截断 django_migrations 表
  • 评论新的 bool 字段
  • 运行 python manage.py makemigrations
  • 运行 python manage.py migrate --fake
  • 运行 python manage.py makemigrations --empty app
  • 手动将字段添加到操作中的空迁移文件中:
    migrations.AddField('modelName', 'fieldName', models.BooleanField(default=False)),
  • 运行 python manage.py migrate
  • 取消对新 bool 字段的注释,以便它代表您在迁移操作中所做的工作
  • 最佳答案

    请按照以下步骤操作:

  • 删除所有迁移文件
  • 截断 django_migrations 表
  • 评论新的 bool 字段
  • 运行 python manage.py makemigrations
  • 运行 python manage.py migrate --fake
  • 取消注释 bool 字段
  • 运行 python manage.py makemigrations
  • 运行 python manage.py migrate

  • 通常这些步骤可以解决任何类型的迁移问题

    另一个原因可能是您正在使用 django_rest_framework 那么序列化器也需要根据您的模型更改进行更新。

    关于Django - 不会让我向模型添加新字段,因为 1054, "Unknown column ' 字段列表'"),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51880875/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com