You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django数据库列迁移失败求助:添加布尔字段后migrate报错

Django迁移报错:django.db.utils.OperationalError: no such column: ""is_admin"" 的解决办法
  • 检查迁移文件有效性
    找到你的app下migrations目录里最新生成的迁移文件,打开查看operations列表,确认是否包含针对is_admin字段的AddField操作。如果没有,直接删除该无效迁移文件,重新执行makemigrations <my app>生成正确的迁移文件。

  • 核对数据库迁移记录
    登录数据库查看django_migrations表,找到对应app的迁移条目。如果存在迁移记录显示已执行,但实际数据库中并没有is_admin字段的情况,可以删除这条错误记录后,重新执行migrate操作。操作前务必备份数据,避免数据丢失。

  • 检查模型字段定义
    确认user.py里的is_admin字段写法正确,示例:

    is_admin = models.BooleanField(default=False)
    

    注意字段名不要带多余引号,模型类需正确继承models.Model,避免拼写错误。

  • 重置迁移(仅适用于开发环境)
    若处于开发阶段且数据可重置,直接删除app的migrations目录下除__init__.py之外的所有文件,再依次执行:

    python manage.py makemigrations <my app>
    python manage.py migrate
    

    此方法可彻底清除迁移历史的混乱,但绝对不能在生产环境使用。

  • 排查依赖代码干扰
    如果项目中有其他模型、信号或启动时执行的代码提前访问了is_admin字段,会导致迁移时字段尚未创建就被调用。可暂时注释掉这些依赖代码,完成迁移后再恢复。

内容的提问来源于stack exchange,提问作者Sebastian Presno Alvarado

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 12:23:11