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

CentOS7下Django执行migrate报SQLite版本过低 如何升级SQLite

问题根因

CentOS 7官方软件源默认最高仅提供SQLite 3.7.17版本,而你使用的Django 3.2版本要求SQLite最低版本为3.9.0,版本不匹配触发报错。

升级方案

以下三种方案任选其一即可,推荐优先选方案C,操作最快无系统影响。

方案C:使用预编译pysqlite3包(无需编译,最快生效)

不需要修改系统SQLite版本,仅替换Python调用的SQLite驱动:

  • 安装预编译的高版本SQLite驱动包
pip3 install pysqlite3-binary
  • 修改Django SQLite驱动加载逻辑:找到Python环境路径下的django/db/backends/sqlite3/base.py文件,修改开头的sqlite导入代码:
    将原代码
from sqlite3 import *

替换为

try:
    from pysqlite3 import *
except ImportError:
    from sqlite3 import *
  • 验证:执行python manage.py migrate即可正常运行。

方案A:编译安装新版SQLite(不覆盖系统版本)

适合需要系统全局生效新版SQLite的场景,不会破坏依赖旧版SQLite的系统工具(如yum):

  • 安装编译依赖工具
yum install -y wget gcc make automake libtool
  • 下载SQLite稳定版autoconf格式源码包,解压后进入源码目录
  • 配置安装路径并编译安装
./configure --prefix=/usr/local/sqlite
make -j$(nproc) && make install
  • 添加新版库到系统动态库缓存
echo "/usr/local/sqlite/lib" > /etc/ld.so.conf.d/sqlite.conf
ldconfig
  • 临时配置环境变量后运行Django即可生效
export LD_LIBRARY_PATH="/usr/local/sqlite/lib:$LD_LIBRARY_PATH"
python manage.py migrate

方案B:重编译Python绑定新版SQLite(永久生效)

如果需要Python永久绑定新版SQLite,不需要每次设置环境变量,可以重编译Python:

  • 下载对应你当前安装版本(3.6.8)的Python源码包,解压后进入源码目录
  • 配置编译参数指定新版SQLite路径
./configure --prefix=/usr/local/python3 --with-sqlite=/usr/local/sqlite
make -j$(nproc) && make install
  • 验证:执行以下命令,输出大于等于3.9.0即为生效
python3 -c "import sqlite3; print(sqlite3.sqlite_version)"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 17:45:08