mirror of
https://github.com/alanorth/cgspace-notes.git
synced 2025-01-27 05:49:12 +01:00
Update notes for 2018-09-24
This commit is contained in:
@ -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: -->
|
||||
|
Reference in New Issue
Block a user