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

Django执行makemigrations时出现UndefinedColumn错误求助

错误原因分析
  • 核心问题:数据库适配器与CockroachDB版本不兼容
    从报错栈能明确看到,django_cockroachdb的内省模块(introspection.py)执行了这条SQL语句:

    SELECT table_name, type FROM [SHOW TABLES]
    

    但你当前使用的CockroachDB版本中,SHOW TABLES返回的结果集里并没有名为type的列(较新的CockroachDB版本该列名为table_type),因此触发column "type" does not exist错误。

  • 为什么makemigrations会操作数据库?
    makemigrations命令并非完全不接触数据库,它在生成迁移文件前会检查数据库的迁移历史一致性,这一步需要通过数据库内省获取现有表列表(包括Django自带的迁移记录表django_migrations),因此会发起数据库查询。

  • 版本匹配问题
    你使用的Django 3.2.12需要搭配适配的django-cockroachdb版本,同时还要与CockroachDB版本兼容:

    • 若CockroachDB版本为v22.1及以上,适配Django 3.2的早期django-cockroachdb版本未同步更新SQL查询语句,导致列名不匹配。
    • 新建CockroachDB实例仍报错,说明是适配器与数据库版本的全局不兼容,而非单个项目的局部问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 19:03:36