Update notes for 2018-09-24

This commit is contained in:
2018-09-25 02:24:43 +03:00
parent 9993ecc196
commit 27c3f48ef6
3 changed files with 60 additions and 8 deletions

View File

@ -434,5 +434,30 @@ sqlite> INSERT INTO items(id, views) VALUES(0, 7) ON CONFLICT(id) DO UPDATE SET
- But when I deployed it on my Ubuntu 16.04 environment I realized Ubuntu's SQLite is old and doesn't support `UPSERT`, so my indexing doesn't work...
- Apparently `UPSERT` came in SQLite 3.24.0 (2018-06-04), and Ubuntu 16.04 has 3.11.0
- Ok this is hilarious, I manually downloaded the [libsqlite3 3.24.0 deb from Ubuntu 18.10 "cosmic"](https://packages.ubuntu.com/cosmic/libsqlite3-0) and installed it in Ubnutu 16.04 and now the Python `indexer.py` works
- This is definitely a dirty hack, but the list of packages we use that depend on `libsqlite3-0` in Ubuntu 16.04 are actually pretty few:
```
# apt-cache rdepends --installed libsqlite3-0 | sort | uniq
gnupg2
libkrb5-26-heimdal
libnss3
libpython2.7-stdlib
libpython3.5-stdlib
```
- I wonder if I could work around this by detecting the SQLite library version, for example on Ubuntu 16.04 after I replaced the library:
```
# python3
Python 3.5.2 (default, Nov 23 2017, 16:37:01)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sqlite3
>>> print(sqlite3.sqlite_version)
3.24.0
```
- Or maybe I should just bite the bullet and migrate this to PostgreSQL, as it [supports `UPSERT` since version 9.5](https://wiki.postgresql.org/wiki/UPSERT) and also seems to have my new favorite `LIMIT` and `OFFSET`
- I changed the syntax of the SQLite stuff and PostgreSQL is working flawlessly with psycopg2... hmmm.
<!-- vim: set sw=2 ts=2: -->