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

Django 3.1+ JSONField问题:Linux正常,Windows执行migrate报SQLite不支持错误

解决Windows下Django 3.1 JSONField迁移报错SQLite不支持的问题

嘿,这个坑我之前踩过!虽然Django 3.1推出的JSONField号称支持所有数据库,但这里的“支持”是有前提的——SQLite版本必须≥3.9.0,而Windows系统里Python默认自带的SQLite版本往往比较旧,刚好低于这个要求,这就是为什么Linux上正常(Linux发行版的SQLite通常是较新的),Windows上跑python manage.py migrate就报错。

下面是具体的解决步骤:

第一步:确认当前SQLite版本

先打开Python终端,执行以下命令查看你的SQLite版本:

import sqlite3
print(sqlite3.sqlite_version)

如果输出的版本号低于3.9.0,那就是版本的问题了。

第二步:升级Windows上的SQLite

方法一:替换Python系统目录的sqlite3.dll

  • 下载对应你Python位数(32/64位)的最新版sqlite3.dll文件;
  • 找到你的Python安装目录(比如C:\Python38),进入DLLs文件夹;
  • 把原来的sqlite3.dll备份一下,然后将下载的新版文件替换进去;
  • 关闭所有Python相关的终端和编辑器,重新打开后验证版本。

方法二:替换虚拟环境中的sqlite3.dll

如果你用了虚拟环境,直接替换虚拟环境里的文件更稳妥:

  • 进入虚拟环境目录(比如my_project\venv),找到DLLs文件夹;
  • 同样备份原文件,替换为新版sqlite3.dll;
  • 重启虚拟环境后验证版本。

第三步:验证并重新执行迁移

再次运行第一步的代码确认SQLite版本≥3.9.0后,回到项目目录执行:

python manage.py migrate

这次应该就能正常完成迁移了。

备选方案(不推荐)

如果暂时不想升级SQLite,也可以改用第三方的JSON字段库(比如django-jsonfield),但原生的JSONField功能更完善,还是建议优先升级SQLite版本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 10:47:55