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