django报错 SQLite 3.8.3 or later

问题出在django 新版提高了sqlite3 的版本要求。

如果项目真的不需要使用sqlite数据库,可以执行以下操作:

更改sqlite3虚拟环境中的版本检查。

 {venv目录}/lib/python3.8/site-packages/django/db/backends/sqlite3/base.py #删除或者注释第73行的 check_sqlite_version()

当需要使用sqlite数据库时执行以下操作

  1. 更新现有的sqlite数据库
    • wget https://www.sqlite.org/2021/sqlite-autoconf-3350500.tar.gz #下载最新源码,链接为3.35版本
      tar -zxvf sqlite-autoconf-3350500.tar.gz #解压包
      ./configure --prefix=/usr/local/
      make && make install #进行一个译的编
      
  2. 更新创建对于新sqlite的软连接
    • mv /usr/bin/sqlite3 /usr/bin/sqlite3.bak
      ln -s /usr/local/bin/sqlite3 /usr/bin/sqlite3
      
  3. 删除旧版sqlite的.so文件(django 使用uwsgi运行时必需进行的操作,否则使用时依旧会报错)
    • cp /usr/local/lib/libsqlite3.so.0 /usr/lib64/ #输入Y确认覆盖
      
  4. 配置环境变量并生效
    • echo export LD_LIBRARY_PATH="/usr/local/lib">> ~/.bashrc
      source ~/.bashrc
      
      
  5. 检查是否生效
    • sqlite3 --version #输出版本