IT-SERVICES

Опубликовано: 13 июня 2019 г. 10:12

Новая версия Django(2.2) теперь требуют новую версию SQLite на Centos 7. При запуске возникает ошибка, что самая последняя версия sqlite 3.7.17, а нужно минимальную 3.8.3. Выход из сутуации это понизить версию django==2.1, найти репозиторий с последней версией или скомпилировать вручную. Так же можно просто отказаться от SQLite и использовать другую БД, что не всегда бывает удобдно для запуска проекта не на продакшене

featured-image

УСТАНОВКА SQLITE ПОСЛЕДНЕЙ ВЕРСИИ

Ну так вот при запуске

python manage.py migrate или даже python manage.py runserver

Появляется ошибка:

  File "/home/vtest/lib/python3.6/site-packages/django/db/backends/sqlite3/base.py", line 66, in <module>
    check_sqlite_version()
  File "/home/vtest/lib/python3.6/site-packages/django/db/backends/sqlite3/base.py", line 63, in check_sqlite_version
    raise ImproperlyConfigured('SQLite 3.8.3 or later is required (found %s).' % Database.sqlite_version)
django.core.exceptions.ImproperlyConfigured: SQLite 3.8.3 or later is required (found 3.7.17).

Текущую версию можно узнать

sqlite3 --version

ПРИСТУПАЕМ:

Скачиваем последнюю версию:

wget https://www.sqlite.org/2019/sqlite-autoconf-3280000.tar.gz

Распаковываем:

tar xvfz sqlite-autoconf-3280000.tar.gz

Переходим в папку:

cd sqlite-autoconf-3280000

Компилируем:

./configure
make
make install

Поверяем снова версию:

sqlite3 --version
3.28.0 2019-04-16 19:49:53 884b4b7e502b4e991677b53971277adfaf0a04a284f8e483e2553d0f83156b50

НО теперь, если проверить версию через питоновский импорт:

(vtest) [root@onvif mysite]# python
Python 3.6.8 (default, Apr 25 2019, 21:02:35) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-36)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sqlite3
>>> sqlite3.sqlite_version
'3.7.17'
>>> exit()

Попробуем заново переконфигурировать с указанием системных путей:

LD_RUN_PATH=/usr/local/lib ./configure
LD_RUN_PATH=/usr/local/lib make install

И последний штрих:

export LD_LIBRARY_PATH="/usr/local/lib"

Проверим:

(vtest) [root@onvif sqlite-autoconf-3280000]# python
Python 3.6.8 (default, Apr 25 2019, 21:02:35) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-36)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sqlite3
>>> sqlite3.sqlite_version
'3.28.0'
>>> exit()

 

Share on Facebook Share on LinkedIn Share on VK