#30313 closed Bug (wontfix)
SQLite min version in Django 2.2 breaks Centos 7 compatibility
Reported by: | Jamie Cockburn | Owned by: | nobody |
---|---|---|---|
Component: | Database layer (models, ORM) | Version: | 2.2 |
Severity: | Normal | Keywords: | SQLite Centos |
Cc: | Triage Stage: | Unreviewed | |
Has patch: | no | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description
The latest Django 2.2 release requires SQLite 3.8.3.
Centos 7 repos bundle SQLite 3.7.17, so this change breaks compatibility with one of the major linux distros.
Change History (6)
comment:1 by , 6 years ago
Resolution: | → wontfix |
---|---|
Status: | new → closed |
comment:2 by , 6 years ago
I haven't checked, but this most likely breaks support for SQLite in Redhat too?
Is there not a way to gracefully degrade?
Losing support for SQLite on these major and widely deployed server operating systems seems wrong.
comment:3 by , 6 years ago
Summary: | SQLite min version in Django 2.2 breaks Centos 7 compatability → SQLite min version in Django 2.2 breaks Centos 7 compatibility |
---|
follow-up: 5 comment:4 by , 5 years ago
It's not just Centos. It's breaking a few of my Travis builds too:
- https://travis-ci.org/WoLpH/django-utils/jobs/519040856
- https://travis-ci.org/WoLpH/django-statsd/jobs/519040878
Probably more, but these are the first that get run monthly and suddenly broke down because of this change.
At the very least the commit message is wrong though: https://github.com/django/django/commit/36300ef336e3f130a0dadc1143163ff3d23dc843
"Fixed a failure when running tests on systems with SQLite < 3.8.3."
It doesn't fix any failure, it creates a failure by adding a requirement.
comment:5 by , 5 years ago
You can simply fix this by pointing xenial
as a distribution for TravisCI (e.g. using xenial).
comment:6 by , 5 years ago
When CentOS 8 is ready, hopefully it will use an sqlite library that's at least version 3.8.3, but until then, if you need to update your system's sqlite library on CentOS 7 minimal x86_64, do this as root:
yum groupinstall "Development Tools" yum install tcl curl -O https://www.sqlite.org/src/tarball/sqlite.tar.gz tar -xvf sqlite.tar.gz cd sqlite/ ./configure make cp -v .libs/libsqlite3.so.0.8.6 /usr/local/lib64/ # Dont miss the dot in .libs above echo "/usr/local/lib64" > /etc/ld.so.conf.d/sqlite-x68_64.conf ldconfig
We basically just compiled the sqlite library from source, moved it to /usr/local/lib64/, and told the system to use it instead of the original /usr/lib64/libsqlite3.so.0.8.6 library it was using. This effects virtual environments as well.
At this point, if you want, you can delete the sqlite.tar.gz file, and sqlite directory with all the source code.
If you ever need to undo this, delete /etc/ld.so.conf.d/sqlite-x68_64.conf, delete /usr/local/lib64/libsqlite3.so.0.8.6, and run "ldconfig" as root.
OK, that's unfortunate, but I don't think there's anything we can do. As per discussion on #30055, this was required to make other improvements possible.
SQLite v3.8.3 was released in Feb 2014. Current version is v3.27.2.
Unless you can ask Centos to upgrade — I don't know if they'll do that — I guess you'll need to compile an updated versions yourself.
(There's good stuff in there.)
Sorry for the inconvenience.