1. 项目环境:

    centos7
    django 2.2.10
    
  2. 问题描述:

    使用了django 2.2.12版本开发项目,此版本对应的sqlite需要升级为3.8.0以上。

    百度了不少解决方案,缺点:过程繁琐、重启centos后失效。

    报错提示:

    django.core.exceptions.ImproperlyConfigured: SQLite 3.8.3 or later is required (found 3.7.17).
    

    需要解决:

    -升级SQLite版本
    -更新centos系统的SQLite
    -重启系统后仍然可正常使用
    
  3. 影响版本:

    Django 2.2以上

  4. 参考链接:

    https://code.djangoproject.com/ticket/30313

  5. 解决方案:

    查看当前系统的sqlite版本
    /usr/bin/sqlite3 --version
    3.7.17 2013-05-20 00:56:22 118a3b35693b134d56ebd780123b7fd6f1497668
    
    下载新版sqlite
    wget https://www.sqlite.org/2019/sqlite-autoconf-3270200.tar.gz[根据具体版本进行修改]
    解压
    tar -zxvf sqlite-autoconf-3270200.tar.gz
    
    安装其他工具包
    yum groupinstall "Development Tools"
    yum install tcl
    
    cd sqlite/
    ./configure
    make
    cp -v .libs/libsqlite3.so.0.8.6 /usr/local/lib64/
    
    echo "/usr/local/lib64" > /etc/ld.so.conf.d/sqlite-x68_64.conf
    ldconfig
    
    测试:
    [root@localhost test_project]# python3
    >>>import sqlite3
    >>>sqlite3.sqlite_version
    '3.28.0'
    >>>
        
    
  6. 问题分析:

    看了看django官方的回复,大致是这么个意思:
    	我们项目的长远发展不能因为centos系统的滞后而妥协
    
  7. 报错内容:

    django.db.utils.NotSupportedError: deterministic=True requires SQLite 3.8.3