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

Django migrate未更新SQL表,触发Unknown column操作错误求助

解决Django模型字段同步失败导致的Unknown Column错误

问题分析

错误提示Unknown column 'recipes_recipe.title' in 'field list'说明数据库中recipes_recipe表的结构和当前Recipe模型完全不一致——数据库里没有title等模型中定义的字段,之前的迁移操作没正确将模型变更同步到数据库。

彻底重置迁移与数据库表的步骤

按以下顺序操作,确保模型和数据库完全同步:

  1. 停止Django开发服务器
    确保当前没有运行的Django进程,避免操作时出现锁表或冲突。

  2. 清理数据库中的旧数据

    • 登录到你的数据库(比如MySQL命令行或可视化管理工具)
    • 删除recipes_recipe表:执行SQL语句 DROP TABLE IF EXISTS recipes_recipe;
    • 删除django_migrations表中属于recipes应用的所有记录:执行 DELETE FROM django_migrations WHERE app = 'recipes';
  3. 清理本地迁移文件
    进入项目中recipes应用的migrations文件夹,删除除了__init__.py之外的所有.py和.pyc文件。

  4. 重新生成初始迁移文件
    在项目根目录执行命令:

    python manage.py makemigrations recipes
    

    这会根据当前models.py的结构生成全新的初始迁移记录。

  5. 执行迁移同步数据库
    执行命令:

    python manage.py migrate recipes
    

    此时Django会根据新生成的迁移文件,在数据库中创建包含所有模型字段的recipes_recipe表。

额外检查点

  • 确认multiselectfield库已正确安装:执行pip install django-multiselectfield,避免因依赖缺失导致迁移失败。
  • 执行迁移时如果报错,检查命令行输出的具体错误信息,比如字段长度限制、唯一约束冲突等,针对性调整模型后重新执行步骤4和5。

内容的提问来源于stack exchange,提问作者NullVoid0

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 07:35:23